linux/arch/x86/kernel/apic
Suresh Siddha ce4e240c27 x86: add x2apic_wrmsr_fence() to x2apic flush tlb paths
Impact: optimize APIC IPI related barriers

Uncached MMIO accesses for xapic are inherently serializing and hence
we don't need explicit barriers for xapic IPI paths.

x2apic MSR writes/reads don't have serializing semantics and hence need
a serializing instruction or mfence, to make all the previous memory
stores globally visisble before the x2apic msr write for IPI.

Add x2apic_wrmsr_fence() in flush tlb path to x2apic specific paths.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: "steiner@sgi.com" <steiner@sgi.com>
Cc: Nick Piggin <npiggin@suse.de>
LKML-Reference: <1237313814.27006.203.camel@localhost.localdomain>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-03-18 09:36:14 +01:00
..
Makefile
apic.c x86, ioapic: Fix non atomic allocation with interrupts disabled 2009-03-17 15:45:29 -07:00
apic_flat_64.c x86: apic: simplify secondary CPU wakeup methods 2009-02-26 13:58:26 +01:00
bigsmp_32.c x86_32: apic/bigsmp_32, de-inline functions 2009-03-02 11:20:32 +01:00
es7000_32.c x86_32: apic/es7000_32, fix section mismatch 2009-03-02 12:00:24 +01:00
io_apic.c x86: fix broken irq migration logic while cleaning up multiple vectors 2009-03-17 16:49:30 -07:00
ipi.c
nmi.c
numaq_32.c x86_32: apic/numaq_32, fix section mismatch 2009-03-02 12:00:25 +01:00
probe_32.c x86: apic: simplify secondary CPU wakeup methods 2009-02-26 13:58:26 +01:00
probe_64.c x86, x2apic: cleanup ifdef CONFIG_INTR_REMAP in io_apic code 2009-03-17 15:45:07 -07:00
summit_32.c x86_32: apic/summit_32, fix section mismatch 2009-03-02 12:00:25 +01:00
x2apic_cluster.c x86: add x2apic_wrmsr_fence() to x2apic flush tlb paths 2009-03-18 09:36:14 +01:00
x2apic_phys.c x86: add x2apic_wrmsr_fence() to x2apic flush tlb paths 2009-03-18 09:36:14 +01:00
x2apic_uv_x.c x86: apic: simplify secondary CPU wakeup methods, fix 2009-02-26 14:11:06 +01:00