[cgmanager-devel] [lxc-devel] [RFC PATCH 1/1] Handle running on unified hierarchy

Serge Hallyn serge.hallyn at ubuntu.com
Tue Jun 30 20:03:53 UTC 2015


Quoting Stéphane Graber (stgraber at ubuntu.com):
> On Tue, Jun 16, 2015 at 02:34:57PM +0000, Serge Hallyn wrote:
> > The unified hierachy has some very different behavior from legacy hierachies.
> > Perhaps most intrusively, tasks may only exist in leaf nodes.  To deal with
> > this, any Create request will create a cgroup with all controllers enabled
> > that were enabled in the parent, while MovePid will move a process into a
> > child of the requested cgroup with no enabled controllers, called ".cgm_leaf".
> > 
> > We declare the current cgmanager API to be a legacy API which may sit on
> > top of either the legacy of unified hierarchy.  A new v2 API, designed around
> > the unified hierarchy, will be introduced alongside the legacy API later.
> > 
> > If unified hierarchy is mounted, recognize it as such.  We also in that case pin
> > the controllers into the unified hierarchy (in a .cgpin directory), as we don't
> > want the mechanism for dealing with the controller to change mid-way.
> > 
> > When calculating or showing a task's cgroup, drop the ".cgm_leaf" part.
> > 
> > create: copy the parent's list of active controllers into the newly
> > created one.  Otherwise the controllers cannot be used.
> > 
> > update movepid to handle unified hierarchy.  this involves:
> >   creating the leafdir if it doesn't already exists
> >   chowning the leafdir contents to match the parent dir contents
> >   (don't enable any controllers in the leafdir)
> > 
> > ignore error chowning tasks file, since it won't exist in unified hierarchy
> > 
> > chown: also chown leaf dir if it exists
> > 
> > handle leafdir in remove
> > 
> > use NIH_MUST to avoid some null checks
> > 
> > set_value: set cgm_leaf value as well as parent's
> > 
> > Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
> 
> Seems like a few debug statements have stuck around and show be dropped
> or reworked.

thanks, yeah and any nih_info which has no tab is meant to be removed.

One thing still to be done is to refuse any API calls from manually acting
on a cgroup called ".cgm_leaf".

Anyway, in theory this should not affect the normal functionality, so after
removing the bogus debugs I may push this to git.  Unless someone has a
good suggestion that involves not using this patch at all.

-serge


More information about the cgmanager-devel mailing list