Re: [RFC] blk-cgroup: Allow creation of hierarchical cgroups

From: Jens Axboe
Date: Mon Nov 15 2010 - 13:38:30 EST


On 2010-11-15 16:28, Vivek Goyal wrote:
> On Tue, Nov 02, 2010 at 06:20:30PM -0400, Vivek Goyal wrote:
>> o Allow hierarchical cgroup creation for blkio controller
>>
>> o Currently we disallow it as both the io controller policies (throttling
>> as well as proportion bandwidth) do not support hierarhical accounting
>> and control. But the flip side is that blkio controller can not be used with
>> libvirt as libvirt creates a cgroup hierarchy deeper than 1 level.
>>
>> <top-level-cgroup-dir>/<controller>/libvirt/qemu/<virtual-machine-groups>
>>
>> o So this patch will allow creation of cgroup hierarhcy but at the backend
>> everything will be treated as flat. So if somebody created a an hierarchy
>> like as follows.
>>
>> root
>> / \
>> test1 test2
>> |
>> test3
>>
>> CFQ and throttling will practically treat all groups at same level.
>>
>> pivot
>> / | \ \
>> root test1 test2 test3
>>
>> o Once we have actual support for hierarchical accounting and control
>> then we can introduce another cgroup tunable file "blkio.use_hierarchy"
>> which will be 0 by default but if user wants to enforce hierarhical
>> control then it can be set to 1. This way there should not be any
>> ABI problems down the line.
>>
>> o The only not so pretty part is introduction of extra file "use_hierarchy"
>> down the line. Kame-san had mentioned that hierarhical accounting is
>> expensive in memory controller hence they keep it off by default. I
>> suspect same will be the case for IO controller also as for each IO
>> completion we shall have to account IO through hierarchy up to the root..
>> if yes, then it probably is not a very bad idea to introduce this extra
>> file so that it will be used only when somebody needs it and some people
>> might enable hierarchy only in part of the hierarchy.
>>
>> o This is how basically memory controller also uses "use_hierarhcy" and
>> they also allowed creation of hierarchies when actual backend support
>> was not available.
>>
>> Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
>> ---
>
> Hi Jens,
>
> Do you have any concerns about this patch? If not, can you please apply
> it.

Applied to for-2.6.38/rc2-holder, it'll be merged into for-2.6.38/core
once -rc2 has been tagged (and I can pull in the conflicting bits).

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/