diff options
author | Tejun Heo <tj@kernel.org> | 2013-05-14 16:52:38 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-05-14 16:52:38 -0400 |
commit | 9138125beabbb76b4a373d4a619870f6f5d86fc5 (patch) | |
tree | 61ccabf042ff21b81c6dcd074ea8edeb77fedfa8 /Documentation/cgroups | |
parent | 693e751e70843c29884cde326016e746fa16073a (diff) |
blk-throttle: implement proper hierarchy support
With the recent updates, blk-throttle is finally ready for proper
hierarchy support. Dispatching now honors service_queue->parent_sq
and propagates correctly. The only thing missing is setting
->parent_sq correctly so that throtl_grp hierarchy matches the cgroup
hierarchy.
This patch updates throtl_pd_init() such that service_queues form the
same hierarchy as the cgroup hierarchy if sane_behavior is enabled.
As this concludes proper hierarchy support for blkcg, the shameful
.broken_hierarchy tag is removed from blkio_subsys.
v2: Updated blkio-controller.txt as suggested by Vivek.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Cc: Li Zefan <lizefan@huawei.com>
Diffstat (limited to 'Documentation/cgroups')
-rw-r--r-- | Documentation/cgroups/blkio-controller.txt | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/Documentation/cgroups/blkio-controller.txt b/Documentation/cgroups/blkio-controller.txt index da272c8f44e7..cd556b914786 100644 --- a/Documentation/cgroups/blkio-controller.txt +++ b/Documentation/cgroups/blkio-controller.txt | |||
@@ -94,11 +94,13 @@ Throttling/Upper Limit policy | |||
94 | 94 | ||
95 | Hierarchical Cgroups | 95 | Hierarchical Cgroups |
96 | ==================== | 96 | ==================== |
97 | - Currently only CFQ supports hierarchical groups. For throttling, | ||
98 | cgroup interface does allow creation of hierarchical cgroups and | ||
99 | internally it treats them as flat hierarchy. | ||
100 | 97 | ||
101 | If somebody created a hierarchy like as follows. | 98 | Both CFQ and throttling implement hierarchy support; however, |
99 | throttling's hierarchy support is enabled iff "sane_behavior" is | ||
100 | enabled from cgroup side, which currently is a development option and | ||
101 | not publicly available. | ||
102 | |||
103 | If somebody created a hierarchy like as follows. | ||
102 | 104 | ||
103 | root | 105 | root |
104 | / \ | 106 | / \ |
@@ -106,21 +108,20 @@ Hierarchical Cgroups | |||
106 | | | 108 | | |
107 | test3 | 109 | test3 |
108 | 110 | ||
109 | CFQ will handle the hierarchy correctly but and throttling will | 111 | CFQ by default and throttling with "sane_behavior" will handle the |
110 | practically treat all groups at same level. For details on CFQ | 112 | hierarchy correctly. For details on CFQ hierarchy support, refer to |
111 | hierarchy support, refer to Documentation/block/cfq-iosched.txt. | 113 | Documentation/block/cfq-iosched.txt. For throttling, all limits apply |
112 | Throttling will treat the hierarchy as if it looks like the | 114 | to the whole subtree while all statistics are local to the IOs |
113 | following. | 115 | directly generated by tasks in that cgroup. |
116 | |||
117 | Throttling without "sane_behavior" enabled from cgroup side will | ||
118 | practically treat all groups at same level as if it looks like the | ||
119 | following. | ||
114 | 120 | ||
115 | pivot | 121 | pivot |
116 | / / \ \ | 122 | / / \ \ |
117 | root test1 test2 test3 | 123 | root test1 test2 test3 |
118 | 124 | ||
119 | Nesting cgroups, while allowed, isn't officially supported and blkio | ||
120 | genereates warning when cgroups nest. Once throttling implements | ||
121 | hierarchy support, hierarchy will be supported and the warning will | ||
122 | be removed. | ||
123 | |||
124 | Various user visible config options | 125 | Various user visible config options |
125 | =================================== | 126 | =================================== |
126 | CONFIG_BLK_CGROUP | 127 | CONFIG_BLK_CGROUP |