• Balbir Singh's avatar
    Add cgroupstats · 846c7bb0
    Balbir Singh authored
    This patch is inspired by the discussion at
    http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics
    as suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.  The
    patch is on top of 2.6.21-mm1 with Paul's cgroups v9 patches (forward
    ported)
    
    This patch implements per cgroup statistics infrastructure and re-uses
    code from the taskstats interface.  A new set of cgroup operations are
    registered with commands and attributes.  It should be very easy to
    *extend* per cgroup statistics, by adding members to the cgroupstats
    structure.
    
    The current model for cgroupstats is a pull, a push model (to post
    statistics on interesting events), should be very easy to add.  Currently
    user space requests for statistics by passing the cgroup file
    descriptor.  Statistics about the state of all the tasks in the cgroup
    is returned to user space.
    
    TODO's/NOTE:
    
    This patch provides an infrastructure for implementing cgroup statistics.
    Based on the needs of each controller, we can incrementally add more statistics,
    event based support for notification of statistics, accumulation of taskstats
    into cgroup statistics in the future.
    
    Sample output
    
    # ./cgroupstats -C /cgroup/a
    sleeping 2, blocked 0, running 1, stopped 0, uninterruptible 0
    
    # ./cgroupstats -C /cgroup/
    sleeping 154, blocked 0, running 0, stopped 0, uninterruptible 0
    
    If the approach looks good, I'll enhance and post the user space utility for
    the same
    
    Feedback, comments, test results are always welcome!
    
    [akpm@linux-foundation.org: build fix]
    Signed-off-by: default avatarBalbir Singh <balbir@linux.vnet.ibm.com>
    Cc: Paul Menage <menage@google.com>
    Cc: Jay Lan <jlan@engr.sgi.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    846c7bb0
cgroup.c 71.5 KB