x86/smp: Don't ever patch back to UP if we unplug cpus
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 6 Aug 2012 07:59:49 +0000 (17:29 +0930)
committerIngo Molnar <mingo@kernel.org>
Thu, 23 Aug 2012 08:45:13 +0000 (10:45 +0200)
commit816afe4ff98ee10b1d30fd66361be132a0a5cee6
treeedb054530d87da95a9a9054d50467d92b62d8214
parent23dcfa61bac244e1200ff9ad19c6e9144dcb6bb5
x86/smp: Don't ever patch back to UP if we unplug cpus

We still patch SMP instructions to UP variants if we boot with a
single CPU, but not at any other time.  In particular, not if we
unplug CPUs to return to a single cpu.

Paul McKenney points out:

 mean offline overhead is 6251/48=130.2 milliseconds.

 If I remove the alternatives_smp_switch() from the offline
 path [...] the mean offline overhead is 550/42=13.1 milliseconds

Basically, we're never going to get those 120ms back, and the
code is pretty messy.

We get rid of:

 1) The "smp-alt-once" boot option. It's actually "smp-alt-boot", the
    documentation is wrong. It's now the default.

 2) The skip_smp_alternatives flag used by suspend.

 3) arch_disable_nonboot_cpus_begin() and arch_disable_nonboot_cpus_end()
    which were only used to set this one flag.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Paul McKenney <paul.mckenney@us.ibm.com>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/87vcgwwive.fsf@rustcorp.com.au
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Documentation/kernel-parameters.txt
arch/x86/include/asm/alternative.h
arch/x86/kernel/alternative.c
arch/x86/kernel/smpboot.c
arch/x86/xen/smp.c
kernel/cpu.c