On Tue, Jul 30, 2024 at 02:21:56PM GMT, Tejun Heo <tj@xxxxxxxxxx> wrote: > On Mon, Jul 15, 2024 at 11:00:34AM -0400, Waiman Long wrote: > > Cgroup subsystem state (CSS) is an abstraction in the cgroup layer to > > help manage different structures in various cgroup subsystems by being > > an embedded element inside a larger structure like cpuset or mem_cgroup. > > > > The /proc/cgroups file shows the number of cgroups for each of the > > subsystems. With cgroup v1, the number of CSSes is the same as the > > number of cgroups. That is not the case anymore with cgroup v2. The > > /proc/cgroups file cannot show the actual number of CSSes for the > > subsystems that are bound to cgroup v2. > > > > So if a v2 cgroup subsystem is leaking cgroups (usually memory cgroup), > > we can't tell by looking at /proc/cgroups which cgroup subsystems may > > be responsible. > > > > As cgroup v2 had deprecated the use of /proc/cgroups, the hierarchical > > cgroup.stat file is now being extended to show the number of live and > > dying CSSes associated with all the non-inhibited cgroup subsystems that > > have been bound to cgroup v2. The number includes CSSes in the current > > cgroup as well as in all the descendants underneath it. This will help > > us pinpoint which subsystems are responsible for the increasing number > > of dying (nr_dying_descendants) cgroups. > > > > The CSSes dying counts are stored in the cgroup structure itself > > instead of inside the CSS as suggested by Johannes. This will allow > > us to accurately track dying counts of cgroup subsystems that have > > recently been disabled in a cgroup. It is now possible that a zero > > subsystem number is coupled with a non-zero dying subsystem number. > > > > The cgroup-v2.rst file is updated to discuss this new behavior. > > > > With this patch applied, a sample output from root cgroup.stat file > > was shown below. > ... > > Applied to cgroup/for-6.12. I think the commit message is missing something like this: | 'debug' controller wasn't used to provide this information because | the controller is not recommended in productions kernels, also many of | them won't enable CONFIG_CGROUP_DEBUG by default. | | Similar information could be retrieved with debuggers like drgn but | that's also not always available (e.g. lockdown) and the additional | cost of runtime tracking here is deemed marginal. or a 'Link:' to the discussion ;-) Thanks, Michal
Attachment:
signature.asc
Description: PGP signature