blob: 85186e7d40351742d0b8f5011a1c8341dd7fad94 [file] [log] [blame]
Mauro Carvalho Chehabc3123552019-04-17 05:46:08 -03001==================
2Control Groupstats
3==================
4
Balbir Singh846c7bb2007-10-18 23:39:44 -07005Control Groupstats is inspired by the discussion at
Joe Perches05a5f512021-01-10 12:41:44 -08006https://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.
Balbir Singh846c7bb2007-10-18 23:39:44 -07008
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
Mauro Carvalho Chehabc3123552019-04-17 05:46:08 -030026has been developed, the sample output of the utility is shown below::
Balbir Singh846c7bb2007-10-18 23:39:44 -070027
Mauro Carvalho Chehabc3123552019-04-17 05:46:08 -030028 ~/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