cgroup: make cgroup->nr_populated count the number of populated css_sets
authorTejun Heo <tj@kernel.org>
Thu, 15 Oct 2015 20:41:49 +0000 (16:41 -0400)
committerTejun Heo <tj@kernel.org>
Thu, 15 Oct 2015 20:41:49 +0000 (16:41 -0400)
commit0de0942db2b36dd91c088a7950398d2e87f23b23
tree27641a8e1c0639ea209f8b171b0eb191afc7118d
parentb309e5b743a999cdb34a3989d1800c608e656c2b
cgroup: make cgroup->nr_populated count the number of populated css_sets

Currently, cgroup->nr_populated counts whether the cgroup has any
css_sets linked to it and the number of children which has non-zero
->nr_populated.  This works because a css_set's refcnt converges with
the number of tasks linked to it and thus there's no css_set linked to
a cgroup if it doesn't have any live tasks.

To help tracking resource usage of zombie tasks, putting the ref of
css_set will be separated from disassociating the task from the
css_set which means that a cgroup may have css_sets linked to it even
when it doesn't have any live tasks.

This patch updates cgroup->nr_populated so that for the cgroup itself
it counts the number of css_sets which have tasks associated with them
so that empty css_sets don't skew the populated test.

Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/cgroup-defs.h
kernel/cgroup.c