linux/arch/x86_64/kernel
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
..
acpi Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpufreq Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
aperture.c [PATCH] remove direct ref to contig_page_data for x86-64 2005-06-23 09:45:06 -07:00
apic.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
asm-offsets.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
e820.c [PATCH] x86-64: Handle empty E820 regions correctly 2005-05-01 08:58:52 -07:00
early_printk.c [PATCH] allow early printk to use more than 25 lines 2005-06-23 09:45:10 -07:00
entry.S [PATCH] x86_64: Readd missing tests in entry.S 2005-05-17 07:59:13 -07:00
genapic_cluster.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genapic_flat.c [PATCH] x86_64: Dont use broadcast shortcut to make it cpu hotplug safe. 2005-06-25 16:24:31 -07:00
genapic.c [PATCH] x86_64 genapic update 2005-04-16 15:24:53 -07:00
head64.c [PATCH] reorganize x86-64 NUMA and DISCONTIGMEM config options 2005-06-23 09:45:06 -07:00
head.S [PATCH] x86_64: Dump stack and prevent recursion on early fault 2005-04-16 15:25:00 -07:00
i387.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
i8259.c [PATCH] x86_64: i8259.c iso99 structure initialization 2005-06-23 09:45:12 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io_apic.c [PATCH] x86_64: More fixes for compilation without CONFIG_ACPI 2005-05-31 14:54:17 -07:00
ioport.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.c [PATCH] x86_64: CPU hotplug support 2005-06-25 16:24:30 -07:00
kprobes.c [PATCH] kprobes: Temporary disarming of reentrant probe for x86_64 2005-06-23 09:45:24 -07:00
ldt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] x86_64: Add pmtimer support 2005-05-17 07:59:15 -07:00
mce_intel.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
mce.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
module.c [PATCH] uml: kludgy compilation fixes for x86-64 subarch modules support 2005-05-05 16:36:33 -07:00
mpparse.c [PATCH] x86_64: avoid wasting IRQs 2005-06-23 09:45:13 -07:00
msr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nmi.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
pci-dma.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-gart.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-nommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmtimer.c [PATCH] x86_64: Add pmtimer support 2005-05-17 07:59:15 -07:00
process.c [PATCH] x86_64: CPU hotplug support 2005-06-25 16:24:30 -07:00
ptrace.c [PATCH] x86_64: TASK_SIZE fixes for compatibility mode processes 2005-06-21 18:46:12 -07:00
reboot.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup64.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
setup.c [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
signal.c [PATCH] xen: x86_64: use more usermode macro 2005-06-23 09:45:14 -07:00
smp.c [PATCH] x86_64: Dont use broadcast shortcut to make it cpu hotplug safe. 2005-06-25 16:24:31 -07:00
smpboot.c [PATCH] x86_64: Dont use broadcast shortcut to make it cpu hotplug safe. 2005-06-25 16:24:31 -07:00
suspend_asm.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
suspend.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys_x86_64.c [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
syscall.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
time.c [PATCH] x86_64: fix hpet for systems that don't support legacy replacement 2005-06-23 09:45:12 -07:00
trampoline.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
traps.c [PATCH] x86_64: CPU hotplug support 2005-06-25 16:24:30 -07:00
vmlinux.lds.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall.c [PATCH] x86_64: Make vsyscall.c compile without CONFIG_SYSCTL 2005-05-17 07:59:16 -07:00
x8664_ksyms.c [PATCH] x86_64: CONFIG_BUG=n fixes 2005-05-25 15:31:28 -07:00