x86: introduce rdtsc_barrier()
authorAndi Kleen <ak@suse.de>
Wed, 30 Jan 2008 12:32:38 +0000 (13:32 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 30 Jan 2008 12:32:38 +0000 (13:32 +0100)
commitfde1b3fa947c2512e3715962ebb1d3a6a9b9bb7d
tree48ad640f75034747187f98fa0040897639376fb6
parent2a10e7c41254941cac87be1eccdcb6379ce097f5
x86: introduce rdtsc_barrier()

rdtsc_barrier() is a new barrier primitive that stops RDTSC speculation
to avoid races with timer interrupts on other CPUs.

It expands either to LFENCE (for Intel CPUs) or MFENCE (for
AMD CPUs) which stops RDTSC on all currently known microarchitectures
that implement SSE. On CPUs without SSE there is generally no RDTSC
speculation.

[ mingo@elte.hu: renamed it to rdtsc_barrier() and made it x86-only ]

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/asm-x86/system.h