mirror of https://github.com/torvalds/linux.git
The cpuset_handle_hotplug() may need to invoke housekeeping_update(), for instance, when an isolated partition is invalidated because its last active CPU has been put offline. As we are going to enable dynamic update to the nozh_full housekeeping cpumask (HK_TYPE_KERNEL_NOISE) soon with the help of CPU hotplug, allowing the CPU hotplug path to call into housekeeping_update() directly from update_isolation_cpumasks() will likely cause deadlock. So we have to defer any call to housekeeping_update() after the CPU hotplug operation has finished. This is now done via the workqueue where the update_hk_sched_domains() function will be invoked via the hk_sd_workfn(). An concurrent cpuset control file write may have executed the required update_hk_sched_domains() function before the work function is called. So the work function call may become a no-op when it is invoked. Signed-off-by: Waiman Long <longman@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org> |
||
|---|---|---|
| .. | ||
| lib | ||
| .gitignore | ||
| Makefile | ||
| config | ||
| memcg_protection.m | ||
| test_core.c | ||
| test_cpu.c | ||
| test_cpuset.c | ||
| test_cpuset_prs.sh | ||
| test_cpuset_v1_base.sh | ||
| test_cpuset_v1_hp.sh | ||
| test_freezer.c | ||
| test_hugetlb_memcg.c | ||
| test_kill.c | ||
| test_kmem.c | ||
| test_memcontrol.c | ||
| test_pids.c | ||
| test_stress.sh | ||
| test_zswap.c | ||
| wait_inotify.c | ||
| with_stress.sh | ||