• Tejun Heo's avatar
    cgroup, cpuset: replace move_member_tasks_to_cpuset() with cgroup_transfer_tasks() · 8cc99345
    Tejun Heo authored
    When a cpuset becomes empty (no CPU or memory), its tasks are
    transferred with the nearest ancestor with execution resources.  This
    is implemented using cgroup_scan_tasks() with a callback which grabs
    cgroup_mutex and invokes cgroup_attach_task() on each task.
    
    Both cgroup_mutex and cgroup_attach_task() are scheduled to be
    unexported.  Implement cgroup_transfer_tasks() in cgroup proper which
    is essentially the same as move_member_tasks_to_cpuset() except that
    it takes cgroups instead of cpusets and @to comes before @from like
    normal functions with those arguments, and replace
    move_member_tasks_to_cpuset() with it.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarLi Zefan <lizefan@huawei.com>
    8cc99345
cpuset.c 75.5 KB