• T
    cgroup, memcg, cpuset: implement cgroup_taskset_for_each_leader() · 4530eddb
    Tejun Heo 提交于
    It wasn't explicitly documented but, when a process is being migrated,
    cpuset and memcg depend on cgroup_taskset_first() returning the
    threadgroup leader; however, this approach is somewhat ghetto and
    would no longer work for the planned multi-process migration.
    
    This patch introduces explicit cgroup_taskset_for_each_leader() which
    iterates over only the threadgroup leaders and replaces
    cgroup_taskset_first() usages for accessing the leader with it.
    
    This prepares both memcg and cpuset for multi-process migration.  This
    patch also updates the documentation for cgroup_taskset_for_each() to
    clarify the iteration rules and removes comments mentioning task
    ordering in tasksets.
    
    v2: A previous patch which added threadgroup leader test was dropped.
        Patch updated accordingly.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Acked-by: NZefan Li <lizefan@huawei.com>
    Acked-by: NMichal Hocko <mhocko@suse.cz>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    4530eddb
cgroup.c 156.3 KB