Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "CPU hotplug, cpusets, suspend: Don't touch cpusets during suspend/resume"

This reverts commit 8f2f748b0656257153bcf0941df8d6060acc5ca6.

It causes some odd regression that we have not figured out, and it's too
late in the -rc series to try to figure it out now.

As reported by Konstantin Khlebnikov, it causes consistent hangs on his
laptop (Thinkpad x220: 2x cores + HT). They can be avoided by adding
calls to "rebuild_sched_domains();" in cpuset_cpu_[in]active() for the
CPU_{ONLINE/DOWN_FAILED/DOWN_PREPARE}_FROZEN cases, but it's not at all
clear why, and it makes no sense.

Konstantin's config doesn't even have CONFIG_CPUSETS enabled, just to
make things even more interesting. So it's not the cpusets, it's just
the scheduling domains.

So until this is understood, revert.

Bisected-reported-and-tested-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

+2 -2
+2 -2
kernel/sched/core.c
··· 6728 6728 static int cpuset_cpu_active(struct notifier_block *nfb, unsigned long action, 6729 6729 void *hcpu) 6730 6730 { 6731 - switch (action) { 6731 + switch (action & ~CPU_TASKS_FROZEN) { 6732 6732 case CPU_ONLINE: 6733 6733 case CPU_DOWN_FAILED: 6734 6734 cpuset_update_active_cpus(); ··· 6741 6741 static int cpuset_cpu_inactive(struct notifier_block *nfb, unsigned long action, 6742 6742 void *hcpu) 6743 6743 { 6744 - switch (action) { 6744 + switch (action & ~CPU_TASKS_FROZEN) { 6745 6745 case CPU_DOWN_PREPARE: 6746 6746 cpuset_update_active_cpus(); 6747 6747 return NOTIFY_OK;