• Paul Menage's avatar
    Task Control Groups: basic task cgroup framework · ddbcc7e8
    Paul Menage authored
    Generic Process Control Groups
    --------------------------
    
    There have recently been various proposals floating around for
    resource management/accounting and other task grouping subsystems in
    the kernel, including ResGroups, User BeanCounters, NSProxy
    cgroups, and others.  These all need the basic abstraction of being
    able to group together multiple processes in an aggregate, in order to
    track/limit the resources permitted to those processes, or control
    other behaviour of the processes, and all implement this grouping in
    different ways.
    
    This patchset provides a framework for tracking and grouping processes
    into arbitrary "cgroups" and assigning arbitrary state to those
    groupings, in order to control the behaviour of the cgroup as an
    aggregate.
    
    The intention is that the various resource management and
    virtualization/cgroup efforts can also become task cgroup
    clients, with the result that:
    
    - the userspace APIs are (somewhat) normalised
    
    - it's easier to test e.g. the ResGroups CPU controller in
     conjunction with the BeanCounters memory controller, or use either of
    them as the resource-control portion of a virtual server system.
    
    - the additional kernel footprint of any of the competing resource
     management systems is substantially reduced, since it doesn't need
     to provide process grouping/containment, hence improving their
     chances of getting into the kernel
    
    This patch:
    
    Add the main task cgroups framework - the cgroup filesystem, and the
    basic structures for tracking membership and associating subsystem state
    objects to tasks.
    Signed-off-by: default avatarPaul Menage <menage@google.com>
    Cc: Serge E. Hallyn <serue@us.ibm.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Cc: Balbir Singh <balbir@in.ibm.com>
    Cc: Paul Jackson <pj@sgi.com>
    Cc: Kirill Korotaev <dev@openvz.org>
    Cc: Herbert Poetzl <herbert@13thfloor.at>
    Cc: Srivatsa Vaddagiri <vatsa@in.ibm.com>
    Cc: Cedric Le Goater <clg@fr.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ddbcc7e8
cgroup.c 29.7 KB