forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.4 KiB
31 lines
1.4 KiB
================== |
|
Control Groupstats |
|
================== |
|
|
|
Control Groupstats is inspired by the discussion at |
|
https://lore.kernel.org/r/[email protected] and implements per cgroup statistics as |
|
suggested by Andrew Morton in https://lore.kernel.org/r/[email protected]. |
|
|
|
Per cgroup statistics infrastructure re-uses code from the taskstats |
|
interface. A new set of cgroup operations are registered with commands |
|
and attributes specific to cgroups. 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 path. |
|
Statistics about the state of all the tasks in the cgroup is returned to |
|
user space. |
|
|
|
NOTE: We currently rely on delay accounting for extracting information |
|
about tasks blocked on I/O. If CONFIG_TASK_DELAY_ACCT is disabled, this |
|
information will not be available. |
|
|
|
To extract cgroup statistics a utility very similar to getdelays.c |
|
has been developed, the sample output of the utility is shown below:: |
|
|
|
~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup/a" |
|
sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0 |
|
~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup" |
|
sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2
|
|
|