1Control Groupstats is inspired by the discussion at 2http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics as 3suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263. 4 5Per cgroup statistics infrastructure re-uses code from the taskstats 6interface. A new set of cgroup operations are registered with commands 7and attributes specific to cgroups. It should be very easy to 8extend per cgroup statistics, by adding members to the cgroupstats 9structure. 10 11The current model for cgroupstats is a pull, a push model (to post 12statistics on interesting events), should be very easy to add. Currently 13user space requests for statistics by passing the cgroup path. 14Statistics about the state of all the tasks in the cgroup is returned to 15user space. 16 17NOTE: We currently rely on delay accounting for extracting information 18about tasks blocked on I/O. If CONFIG_TASK_DELAY_ACCT is disabled, this 19information will not be available. 20 21To extract cgroup statistics a utility very similar to getdelays.c 22has been developed, the sample output of the utility is shown below 23 24~/balbir/cgroupstats # ./getdelays -C "/cgroup/a" 25sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0 26~/balbir/cgroupstats # ./getdelays -C "/cgroup" 27sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2 28