The patch titled sched: CPU hotplug events must not destroy scheduler domains created by the cpusets has been added to the -mm tree. Its filename is sched-cpu-hotplug-events-must-not-destroy-scheduler-domains-created-by-the-cpusets.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: sched: CPU hotplug events must not destroy scheduler domains created by the cpusets From: Max Krasnyansky <maxk@xxxxxxxxxxxx> Currently sched domains created by the cpusets are completely destroyed during CPU hotplug event handling. For each CPU hotplug event scheduler attaches all CPUs to the NULL domain and then puts them all into a single domain thereby destroying domains created by the cpusets. The solution is simple, when cpusets are enabled scheduler should not create the default domain and instead let cpusets rebuild the domains based on the current settings. Which is exactly what the patch does. Signed-off-by: Max Krasnyansky <maxk@xxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Paul Jackson <pj@xxxxxxx> Cc: <stable@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/cpuset.c | 6 ++++++ kernel/sched.c | 8 ++++++++ 2 files changed, 14 insertions(+) diff -puN kernel/cpuset.c~sched-cpu-hotplug-events-must-not-destroy-scheduler-domains-created-by-the-cpusets kernel/cpuset.c --- a/kernel/cpuset.c~sched-cpu-hotplug-events-must-not-destroy-scheduler-domains-created-by-the-cpusets +++ a/kernel/cpuset.c @@ -1890,6 +1890,12 @@ static void common_cpu_mem_hotplug_unplu top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; scan_for_empty_cpusets(&top_cpuset); + /* + * Scheduler destroys domains on hotplug events. + * Rebuild them based on the current settings. + */ + rebuild_sched_domains(); + cgroup_unlock(); } diff -puN kernel/sched.c~sched-cpu-hotplug-events-must-not-destroy-scheduler-domains-created-by-the-cpusets kernel/sched.c --- a/kernel/sched.c~sched-cpu-hotplug-events-must-not-destroy-scheduler-domains-created-by-the-cpusets +++ a/kernel/sched.c @@ -7537,8 +7537,16 @@ static int update_sched_domains(struct n return NOTIFY_DONE; } +#ifndef CONFIG_CPUSETS + /* + * Create default domain partitioning if cpusets are disabled. + * Otherwise we let cpusets rebuild the domains based on the + * current setup. + */ + /* The hotplug lock is already held by cpu_up/cpu_down */ arch_init_sched_domains(&cpu_online_map); +#endif return NOTIFY_OK; } _ Patches currently in -mm which might be from maxk@xxxxxxxxxxxx are linux-next.patch sched-fix-memory-leak-in-the-cpu-hotplug-handing-logic.patch sched-cpu-hotplug-events-must-not-destroy-scheduler-domains-created-by-the-cpusets.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html