[cgmanager-devel] [lxc/cgmanager] d497b0: Handle running on unified hierarchy

GitHub noreply at github.com
Thu Jul 2 15:40:20 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/lxc/cgmanager
  Commit: d497b0d5bc1cc5e002bbc5aacaed1bdebd0eff76
      https://github.com/lxc/cgmanager/commit/d497b0d5bc1cc5e002bbc5aacaed1bdebd0eff76
  Author: Serge Hallyn <serge.hallyn at ubuntu.com>
  Date:   2015-07-02 (Thu, 02 Jul 2015)

  Changed paths:
    M cgmanager.c
    M fs.c
    M fs.h

  Log Message:
  -----------
  Handle running on unified hierarchy

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

Changelog: (July 1)  remove some debug statements

Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>




More information about the cgmanager-devel mailing list