aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/cgroup-defs.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2017-07-16 21:43:33 -0400
committerTejun Heo <tj@kernel.org>2017-07-16 21:44:42 -0400
commit788b950c62e06b02278a0fd380e1a0667996ce3c (patch)
treeca94c0d11e8d7f0b736d27036dd611f6ea2e75a7 /include/linux/cgroup-defs.h
parentcgroup: remove now unused list_head @pending in cgroup_apply_cftypes() (diff)
downloadlinux-dev-788b950c62e06b02278a0fd380e1a0667996ce3c.tar.xz
linux-dev-788b950c62e06b02278a0fd380e1a0667996ce3c.zip
cgroup: distinguish local and children populated states
cgrp->populated_cnt counts both local (the cgroup's populated css_sets) and subtree proper (populated children) so that it's only zero when the whole subtree, including self, is empty. This patch splits the counter into two so that local and children populated states are tracked separately. It allows finer-grained tests on the state of the hierarchy which will be used to replace css_set walking local populated test. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/cgroup-defs.h')
-rw-r--r--include/linux/cgroup-defs.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h
index 09f4c7df1478..ae7bc1e70085 100644
--- a/include/linux/cgroup-defs.h
+++ b/include/linux/cgroup-defs.h
@@ -263,11 +263,16 @@ struct cgroup {
/*
* Each non-empty css_set associated with this cgroup contributes
- * one to populated_cnt. All children with non-zero popuplated_cnt
- * of their own contribute one. The count is zero iff there's no
- * task in this cgroup or its subtree.
+ * one to nr_populated_csets. The counter is zero iff this cgroup
+ * doesn't have any tasks.
+ *
+ * All children which have non-zero nr_populated_csets and/or
+ * nr_populated_children of their own contribute one to
+ * nr_populated_children. The counter is zero iff this cgroup's
+ * subtree proper doesn't have any tasks.
*/
- int populated_cnt;
+ int nr_populated_csets;
+ int nr_populated_children;
struct kernfs_node *kn; /* cgroup kernfs entry */
struct cgroup_file procs_file; /* handle for "cgroup.procs" */