linux/arch/x86/kernel/apic
Cyrill Gorcunov 9d0fa6c5f4 x86, x2apic: Minimize IPI register writes using cluster groups
In the case of x2apic cluster mode we can group IPI register
writes based on the cluster group instead of individual per-cpu
destination messages.

This reduces the apic register writes and reduces the amount of
IPI messages (in the best case we can reduce it by a factor of
16).

With this change, the cost of flush_tlb_others(), with the flush
tlb IPI being sent from a cpu in the socket-1 to all the logical
cpus in socket-2 (on a Westmere-EX system that has 20 logical
cpus in a socket) is 3x times better now (compared to the former
'send one-by-one' algorithm).

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: steiner@sgi.com
Cc: yinghai@kernel.org
Link: http://lkml.kernel.org/r/20110519234637.512271057@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-05-20 13:41:09 +02:00
..
apic_flat_64.c x86, apic: Use probe routines to simplify apic selection 2011-05-20 13:41:04 +02:00
apic_noop.c x86-32, NUMA: Make apic->x86_32_numa_cpu_node() optional 2011-05-02 14:18:52 +02:00
apic.c x86, ioapic: Use ioapic_saved_data while enabling intr-remapping 2011-05-20 13:40:52 +02:00
bigsmp_32.c x86-32, NUMA: Make apic->x86_32_numa_cpu_node() optional 2011-05-02 14:18:52 +02:00
es7000_32.c x86-32, NUMA: Make apic->x86_32_numa_cpu_node() optional 2011-05-02 14:18:52 +02:00
hw_nmi.c x86: Stop including <linux/delay.h> in two asm header files 2011-03-29 09:37:42 +02:00
io_apic.c x86, ioapic: Consolidate mp_ioapic_routing[] into 'struct ioapic' 2011-05-20 13:41:02 +02:00
ipi.c x86: Always use x86_cpu_to_logical_apicid for cpu -> logical apic id 2011-01-28 14:54:05 +01:00
Makefile x86, nmi_watchdog: Remove the old nmi_watchdog 2010-11-18 09:08:23 +01:00
numaq_32.c x86-32, NUMA: Update numaq to use new NUMA init protocol 2011-05-02 14:18:53 +02:00
probe_32.c x86-32, NUMA: Make apic->x86_32_numa_cpu_node() optional 2011-05-02 14:18:52 +02:00
probe_64.c x86, apic: Use probe routines to simplify apic selection 2011-05-20 13:41:04 +02:00
summit_32.c x86-32, NUMA: Make apic->x86_32_numa_cpu_node() optional 2011-05-02 14:18:52 +02:00
x2apic_cluster.c x86, x2apic: Minimize IPI register writes using cluster groups 2011-05-20 13:41:09 +02:00
x2apic_phys.c x86, x2apic: Remove duplicate code for IPI mask routines 2011-05-20 13:41:06 +02:00
x2apic_uv_x.c x86, apic: Use probe routines to simplify apic selection 2011-05-20 13:41:04 +02:00