Re: [RFC] cgroup TODOs
From: Vivek Goyal <hidden>
Date: 2012-09-14 18:08:55
Also in:
lkml
On Thu, Sep 13, 2012 at 01:58:27PM -0700, Tejun Heo wrote: [..]
6. Multiple hierarchies
Apart from the apparent wheeeeeeeeness of it (I think I talked about
that enough the last time[1]), there's a basic problem when more
than one controllers interact - it's impossible to define a resource
group when more than two controllers are involved because the
intersection of different controllers is only defined in terms of
tasks.
IOW, if an entity X is of interest to two controllers, there's no
way to map X to the cgroups of the two controllers. X may belong to
A and B when viewed by one task but A' and B when viewed by another.
This already is a head scratcher in writeback where blkcg and memcg
have to interact.
While I am pushing for unified hierarchy, I think it's necessary to
have different levels of granularities depending on controllers
given that nesting involves significant overhead and noticeable
controller-dependent behavior changes.
Solution:
I think a unified hierarchy with the ability to ignore subtrees
depending on controllers should work. For example, let's assume the
following hierarchy.
R
/ \
A B
/ \
AA AB
All controllers are co-mounted. There is per-cgroup knob which
controls which controllers nest beyond it. If blkio doesn't want to
distinguish AA and AB, the user can specify that blkio doesn't nest
beyond A and blkio would see the tree as,
R
/ \
A B
While other controllers keep seeing the original tree. The exact
form of interface, I don't know yet. It could be a single file
which the user echoes [-]controller name into it or per-controller
boolean file.
I think this level of flexibility should be enough for most use
cases. If someone disagrees, please voice your objections now.Hi Tejun, I am curious that why are you planning to provide capability of controller specific view of hierarchy. To me it sounds pretty close to having separate hierarchies per controller. Just that it is a little more restricted configuration. IOW, who is is the user of this functionality and who is asking for it. Can we go all out where all controllers have only one hierarchy view. Thanks Vivek