]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cgroup: document the rstat per-cpu initialization
authorJP Kobryn <inwardvessel@gmail.com>
Thu, 15 May 2025 00:19:37 +0000 (17:19 -0700)
committerTejun Heo <tj@kernel.org>
Mon, 19 May 2025 20:30:02 +0000 (10:30 -1000)
The calls to css_rstat_init() occur at different places depending on the
context. Document the conditions that determine which point of
initialization is used.

Signed-off-by: JP Kobryn <inwardvessel@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/cgroup-defs.h

index 5b8127d29dc589b454d34a582f014466b1f4f9eb..e61687d5e496de26b8092b2346bbc0a862e4dc40 100644 (file)
@@ -169,6 +169,21 @@ struct cgroup_subsys_state {
        /* reference count - access via css_[try]get() and css_put() */
        struct percpu_ref refcnt;
 
+       /*
+        * Depending on the context, this field is initialized
+        * via css_rstat_init() at different places:
+        *
+        * when css is associated with cgroup::self
+        *   when css->cgroup is the root cgroup
+        *     performed in cgroup_init()
+        *   when css->cgroup is not the root cgroup
+        *     performed in cgroup_create()
+        * when css is associated with a subsystem
+        *   when css->cgroup is the root cgroup
+        *     performed in cgroup_init_subsys() in the non-early path
+        *   when css->cgroup is not the root cgroup
+        *     performed in css_create()
+        */
        struct css_rstat_cpu __percpu *rstat_cpu;
 
        /*
@@ -530,6 +545,15 @@ struct cgroup {
        struct cgroup *dom_cgrp;
        struct cgroup *old_dom_cgrp;            /* used while enabling threaded */
 
+       /*
+        * Depending on the context, this field is initialized via
+        * css_rstat_init() at different places:
+        *
+        * when cgroup is the root cgroup
+        *   performed in cgroup_setup_root()
+        * otherwise
+        *   performed in cgroup_create()
+        */
        struct cgroup_rstat_base_cpu __percpu *rstat_base_cpu;
 
        /*