summaryrefslogtreecommitdiff
path: root/kernel/cgroup/namespace.c
diff options
context:
space:
mode:
authorHao Jia <jiahao.os@bytedance.com>2023-08-07 11:29:30 +0800
committerTejun Heo <tj@kernel.org>2023-08-07 08:41:25 -1000
commit0437719c1a97791481c5fd59642494f2108701a8 (patch)
treebfcf3316cae8af8e104241529ba6feb9646d7740 /kernel/cgroup/namespace.c
parente7e64a1bff12f212be12b048723718c2152c4489 (diff)
cgroup/rstat: Record the cumulative per-cpu time of cgroup and its descendants
The member variable bstat of the structure cgroup_rstat_cpu records the per-cpu time of the cgroup itself, but does not include the per-cpu time of its descendants. The per-cpu time including descendants is very useful for calculating the per-cpu usage of cgroups. Although we can indirectly obtain the total per-cpu time of the cgroup and its descendants by accumulating the per-cpu bstat of each descendant of the cgroup. But after a child cgroup is removed, we will lose its bstat information. This will cause the cumulative value to be non-monotonic, thus affecting the accuracy of cgroup per-cpu usage. So we add the subtree_bstat variable to record the total per-cpu time of this cgroup and its descendants, which is similar to "cpuacct.usage*" in cgroup v1. And this is also helpful for the migration from cgroup v1 to cgroup v2. After adding this variable, we can obtain the per-cpu time of cgroup and its descendants in user mode through eBPF/drgn, etc. And we are still trying to determine how to expose it in the cgroupfs interface. Suggested-by: Tejun Heo <tj@kernel.org> Signed-off-by: Hao Jia <jiahao.os@bytedance.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/cgroup/namespace.c')
0 files changed, 0 insertions, 0 deletions