linux/arch
Ashok Raj 884d9e40b4 [PATCH] x86_64: Dont use broadcast shortcut to make it cpu hotplug safe.
Broadcast IPI's provide un-expected behaviour for cpu hotplug.  CPU's in
offline state also end up receiving the IPI.  Once the cpus become online they
receive these stale IPI's which are bad and introduce unexpected behaviour.

This is easily avoided by not sending a broadcast and addressing just the
CPU's in online map.  Doing prelim cycle counts it appears there is no big
overhead and numbers seem around 0x3000-0x3900 on an average on x86 and x86_64
systems with CPUS running 3G, both for broadcast and mask version of the
API's.

The shortcuts are useful only for flat mode (where the perf shows no
degradation), and in cluster mode, its unicast anyway.  Its simpler to just
not use broadcast anymore.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Acked-by: Andi Kleen <ak@muc.de>
Acked-by: Zwane Mwaikambo <zwane@arm.linux.org.uk>
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-25 16:24:31 -07:00
..
alpha [PATCH] update all defconfigs for ARCH_DISCONTIGMEM_ENABLE 2005-06-23 09:45:02 -07:00
arm [PATCH] ARM: Generic Dynamic Tick Timer support for ARM, take 4 2005-06-25 19:39:45 +01:00
arm26 [PATCH] use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh 2005-06-23 09:45:07 -07:00
cris [PATCH] make each arch use mm/Kconfig 2005-06-23 09:45:02 -07:00
frv [PATCH] Serial: remove unnecessary register_serial/unregister_serial 2005-06-25 16:24:25 -07:00
h8300 [PATCH] ptrace_h8300: condition bugfix 2005-06-23 09:45:15 -07:00
i386 [PATCH] x86_64: CPU hotplug support 2005-06-25 16:24:30 -07:00
ia64 [PATCH] i386 CPU hotplug 2005-06-25 16:24:29 -07:00
m32r [PATCH] make each arch use mm/Kconfig 2005-06-23 09:45:02 -07:00
m68k [PATCH] make each arch use mm/Kconfig 2005-06-23 09:45:02 -07:00
m68knommu [PATCH] make each arch use mm/Kconfig 2005-06-23 09:45:02 -07:00
mips [PATCH] mips: add MIPS-specific support for flatmem/discontigmem 2005-06-25 16:24:25 -07:00
parisc [PATCH] mm/Kconfig: kill unused ARCH_FLATMEM_DISABLE 2005-06-23 09:45:03 -07:00
ppc [PATCH] ppc32: remove some unnecessary includes of bootmem.h 2005-06-25 16:24:27 -07:00
ppc64 [PATCH] i386 CPU hotplug 2005-06-25 16:24:29 -07:00
s390 [PATCH] i386 CPU hotplug 2005-06-25 16:24:29 -07:00
sh [PATCH] mm/Kconfig: kill unused ARCH_FLATMEM_DISABLE 2005-06-23 09:45:03 -07:00
sh64 [PATCH] make each arch use mm/Kconfig 2005-06-23 09:45:02 -07:00
sparc [PATCH] use drivers/Kconfig for sparc32 2005-06-23 09:45:33 -07:00
sparc64 [PATCH] compat: introduce compat_time_t 2005-06-23 09:45:32 -07:00
um [PATCH] kstrdup: convert a few existing implementations 2005-06-23 09:45:18 -07:00
v850 [PATCH] make each arch use mm/Kconfig 2005-06-23 09:45:02 -07:00
x86_64 [PATCH] x86_64: Dont use broadcast shortcut to make it cpu hotplug safe. 2005-06-25 16:24:31 -07:00
xtensa [PATCH] Serial: remove unnecessary register_serial/unregister_serial 2005-06-25 16:24:25 -07:00