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