• Tejun Heo's avatar
    cgroup: make cgroup_destroy_locked() test cgroup_is_populated() · 91486f61
    Tejun Heo authored
    cgroup_destroy_locked() currently tests whether any css_sets are
    associated to reject removal if the cgroup contains tasks.  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_destroy_locked() so that it tests
    cgroup_is_populated(), which counts the number of populated css_sets,
    instead of whether cgrp->cset_links is empty to determine whether the
    cgroup is populated or not.  This ensures that rmdirs won't be
    incorrectly rejected for cgroups which only contain zombie tasks.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    91486f61
cgroup.c 158 KB