• Li Zefan's avatar
    cpuset: allow to keep tasks in empty cpusets · 5c5cc623
    Li Zefan authored
    To achieve this:
    
    - We call update_tasks_cpumask/nodemask() for empty cpusets when
    hotplug happens, instead of moving tasks out of them.
    
    - When a cpuset's masks are changed by writing cpuset.cpus/mems,
    we also update tasks in child cpusets which are empty.
    
    v3:
    - do propagation work in one place for both hotplug and unplug
    
    v2:
    - drop rcu_read_lock before calling update_task_nodemask() and
      update_task_cpumask(), instead of using workqueue.
    - add documentation in include/linux/cgroup.h
    Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    5c5cc623
cpuset.c 76.9 KB