aboutsummaryrefslogtreecommitdiff
path: root/Documentation/kdump
diff options
context:
space:
mode:
authorTejun Heo2013-01-07 08:51:08 -0800
committerTejun Heo2013-01-07 08:51:08 -0800
commit5d21cc2db040d01f8c19b8602f6987813e1176b4 (patch)
tree0dcb94aefa3fee2e4c436a50fc5eeb9e45fa3988 /Documentation/kdump
parent02bb586372a71595203b3ff19a9be48eaa076f6c (diff)
cpuset: replace cgroup_mutex locking with cpuset internal locking
Supposedly for historical reasons, cpuset depends on cgroup core for locking. It depends on cgroup_mutex in cgroup callbacks and grabs cgroup_mutex from other places where it wants to be synchronized. This is majorly messy and highly prone to introducing circular locking dependency especially because cgroup_mutex is supposed to be one of the outermost locks. As previous patches already plugged possible races which may happen by decoupling from cgroup_mutex, replacing cgroup_mutex with cpuset specific cpuset_mutex is mostly straight-forward. Introduce cpuset_mutex, replace all occurrences of cgroup_mutex with it, and add cpuset_mutex locking to places which inherited cgroup_mutex from cgroup core. The only complication is from cpuset wanting to initiate task migration when a cpuset loses all cpus or memory nodes. Task migration may go through full cgroup and all subsystem locking and should be initiated without holding any cpuset specific lock; however, a previous patch already made hotplug handled asynchronously and moving the task migration part outside other locks is easy. cpuset_propagate_hotplug_workfn() now invokes remove_tasks_in_empty_cpuset() without holding any lock. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizefan@huawei.com>
Diffstat (limited to 'Documentation/kdump')
0 files changed, 0 insertions, 0 deletions