• T
    cgroup: decouple cgroup_subsys_state destruction from cgroup destruction · 09a503ea
    Tejun Heo 提交于
    Currently, css (cgroup_subsys_state) lifetime is tied to that of the
    associated cgroup.  css's are created when the associated cgroup is
    created and destroyed when it gets destroyed.  Also, individual css's
    aren't RCU protected but the whole cgroup is.  With the planned
    unified hierarchy, css's will need to be dynamically created and
    destroyed within the lifetime of a cgroup.
    
    To enable such usages, this patch decouples css destruction from
    cgroup destruction - offline_css() invocation and the final css_put()
    are moved from cgroup_destroy_css_killed() to css_killed_work_fn().
    Now each css is individually offlined and put as its reference count
    is killed instead of waiting for all css's attached to the cgroup to
    finish refcnt killing and then proceeding to offlining and putting
    them together.
    
    While this changes the order of destruction operations, the changes
    shouldn't be noticeable to cgroup subsystems or userland.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Acked-by: NLi Zefan <lizefan@huawei.com>
    09a503ea
cgroup.h 29.1 KB