Skip to content
  • Tejun Heo's avatar
    cgroup, memcg, cpuset: implement cgroup_taskset_for_each_leader() · 4530eddb
    Tejun Heo authored
    
    
    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: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarZefan Li <lizefan@huawei.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.cz>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    4530eddb