linux-kernel-test/include/asm-x86
Andi Kleen fde1b3fa94 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>
2008-01-30 13:32:38 +01:00
..
mach-bigsmp x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-default x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-es7000 x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-generic
mach-numaq x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-summit x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-visws x86: visws extern inline to static inline 2007-10-17 20:16:39 +02:00
mach-voyager x86: voyager use correct header file name 2007-11-17 16:27:00 +01:00
xen
a.out.h x86: unify a.out{,_32,_64}.h 2007-10-23 22:37:23 +02:00
acpi.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
agp.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:17:12 +02:00
alternative-asm.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
alternative.h x86: actually merge <asm/alternative.h> 2008-01-30 13:30:30 +01:00
apic.h x86: adjust enable_NMI_through_LVT0() 2008-01-30 13:31:24 +01:00
apicdef.h x86: extended interrupt LVT support for AMD Barcelona 2008-01-30 13:30:40 +01:00
arch_hooks.h x86: move debug related declarations to kdebug.h 2008-01-30 13:30:17 +01:00
asm.h x86: introduce asm helpers in local_{32|64}.h 2008-01-30 13:31:26 +01:00
atomic_32.h
atomic_64.h x86: make atomic64_t work like atomic_t 2007-10-17 20:16:21 +02:00
atomic.h
auxvec.h x86: unify include/asm/auxvec_32/64.h 2007-10-17 20:17:13 +02:00
bitops_32.h x86: partial unification of asm-x86/bitops.h 2008-01-30 13:30:55 +01:00
bitops_64.h x86: partial unification of asm-x86/bitops.h 2008-01-30 13:30:55 +01:00
bitops.h x86: change bitwise operations to get a void parameter. 2008-01-30 13:31:31 +01:00
boot.h
bootparam.h x86: EFI runtime service support 2008-01-30 13:31:19 +01:00
bug.h x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
bugs.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
byteorder.h x86: fix asm-x86/byteorder.h for userspace export 2008-01-01 19:12:15 +01:00
cache.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:15 +02:00
cacheflush.h Intel IOMMU: clflush_cache_range now takes size param 2007-10-22 08:13:18 -07:00
calgary.h
calling.h
checksum_32.h
checksum_64.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
checksum.h
cmpxchg_32.h x86: fall back on interrupt disable in cmpxchg8b on 80386 and 80486 2008-01-30 13:30:47 +01:00
cmpxchg_64.h
cmpxchg.h
compat.h x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
cpu.h i386: no need to make enable_cpu_hotplug a variable 2007-10-17 20:16:16 +02:00
cpufeature.h x86: Implement support to synchronize RDTSC with LFENCE on Intel CPUs 2008-01-30 13:32:37 +01:00
cputime.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
current_32.h
current_64.h
current.h
debugreg.h x86: unify include/asm/debugreg_32/64.h 2007-10-17 20:35:37 +02:00
delay.h x86: unify include/asm/delay_32/64.h 2007-10-17 20:17:17 +02:00
desc_64.h x86: unify set_tss_desc 2008-01-30 13:31:14 +01:00
desc_defs.h x86: move _set_gate and its users to a common location 2008-01-30 13:31:14 +01:00
desc.h x86: x86 TLS desc_struct cleanup 2008-01-30 13:31:51 +01:00
device.h intel-iommu: fix for IOMMU early crash 2007-10-22 08:13:19 -07:00
div64.h x86: unify div64{,_32,_64}.h 2007-10-23 22:37:23 +02:00
dma-mapping_32.h Change table chaining layout 2007-10-22 21:20:01 +02:00
dma-mapping_64.h x86-64: enable sg chaining 2007-10-16 11:26:02 +02:00
dma-mapping.h
dma.h x86: merge include/asm-x86/dma.h 2008-01-30 13:30:20 +01:00
dmi.h x86: fix dmi_alloc() to not advance alloc index in case of 2008-01-30 13:31:59 +01:00
ds.h x86, ptrace: support 32bit-cross-64bit BTS recording 2008-01-30 13:32:03 +01:00
dwarf2_32.h
dwarf2_64.h
dwarf2.h
e820_32.h x86 boot: use E820 memory map on EFI 32 platform 2008-01-30 13:31:19 +01:00
e820_64.h x86: remove extern declarations for code, data, bss resources 2008-01-30 13:30:32 +01:00
e820.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
edac.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:19 +02:00
efi.h x86: EFI runtime service support: remove duplicated code from efi_32.c 2008-01-30 13:31:19 +01:00
elf.h x86: compat_binfmt_elf 2008-01-30 13:31:55 +01:00
emergency-restart.h x86: EFI runtime service support: EFI runtime services 2008-01-30 13:31:19 +01:00
errno.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
fb.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:21 +02:00
fcntl.h
fixmap_32.h
fixmap_64.h x86: EFI runtime service support 2008-01-30 13:31:19 +01:00
fixmap.h
floppy.h x86: unify include/asm/floppy_32/64.h 2007-10-17 20:24:56 +02:00
frame.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
futex.h x86: merge futex_32/64.h 2008-01-30 13:30:20 +01:00
gart.h x86 gart: rename symbols only used for the GART implementation 2007-10-30 00:22:22 +01:00
genapic_32.h
genapic_64.h
genapic.h
geode.h GEODE: use symbolic constant in cs5536 reboot fixup 2007-10-19 20:35:02 +02:00
hardirq_32.h x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
hardirq_64.h
hardirq.h
highmem.h
hpet.h x86: offer is_hpet_enabled() on !CONFIG_HPET_TIMER too 2008-01-30 13:30:02 +01:00
hw_irq_32.h x86: move to .rodata/.init.data 2008-01-30 13:31:23 +01:00
hw_irq_64.h x86: clear IO_APIC before enabing apic error vector. 2008-01-30 13:30:39 +01:00
hw_irq.h
hypertransport.h
i387.h x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
i8253.h i386: Remove the useless #ifdef in i8253.h 2007-10-12 23:04:23 +02:00
i8259.h x86: move 8259 defines to i8259.h 2008-01-30 13:30:29 +01:00
ia32_unistd.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
ia32.h x86: TLS cleanup 2008-01-30 13:30:46 +01:00
ide.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
idle.h x86: remove dead code and exports 2008-01-30 13:30:28 +01:00
intel_arch_perfmon.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
io_32.h x86: various changes and cleanups to in_p/out_p delay details 2008-01-30 13:30:05 +01:00
io_64.h x86: tweak io_64.h for paravirt. 2008-01-30 13:31:10 +01:00
io_apic.h x86: merge include/asm-x86/sparsemem.h 2008-01-30 13:30:37 +01:00
io.h
ioctl.h
ioctls.h x86: unify include/asm/ioctls_32/64.h 2007-10-17 20:26:11 +02:00
iommu.h x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
ipcbuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
ipi.h x86: convert cpu_to_apicid to be a per cpu variable 2007-10-19 20:35:03 +02:00
irq_32.h i386: introduce "used_vectors" bitmap which can be used to reserve vectors. 2007-10-19 20:35:03 +02:00
irq_64.h
irq_regs_32.h
irq_regs_64.h
irq_regs.h
irq.h
irqflags.h x86: irqflags consolidation 2008-01-30 13:30:33 +01:00
ist.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
k8.h x86: move k8 related declarations 2008-01-30 13:30:16 +01:00
Kbuild x86 vDSO: ia32 vsyscall removal 2008-01-30 13:30:44 +01:00
kdebug.h x86-64: honor notify_die() returning NOTIFY_STOP 2008-01-30 13:31:23 +01:00
kexec.h x86: unify kexec_{32|64}.h 2008-01-30 13:31:26 +01:00
kmap_types.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:26:13 +02:00
kprobes.h x86: get rid of _MASK flags 2008-01-30 13:31:27 +01:00
ldt.h x86: unify include/asm/ldt_32/64.h 2007-10-17 20:16:47 +02:00
lguest_hcall.h lguest: make async_hcall() static 2007-11-05 21:53:29 +11:00
lguest.h x86: unify tss_struct 2008-01-30 13:31:31 +01:00
linkage.h x86: unify include/asm-x86/linkage_[32|64].h 2008-01-30 13:31:07 +01:00
local.h x86: local.h fix checkpatch warnings 2008-01-30 13:31:26 +01:00
mach_apic.h
math_emu.h x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
mc146818rtc.h x86: isolate the rtc code for sharing 2008-01-30 13:30:26 +01:00
mca_dma.h
mca.h
mce.h x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
mman.h x86: unify include/asm/mman_32/64.h 2007-10-17 20:26:15 +02:00
mmu_context_32.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
mmu_context_64.h x86: move load_cr3 to a common place. 2008-01-30 13:31:27 +01:00
mmu_context.h
mmu.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
mmx.h
mmzone_32.h x86: put all kern_addr_valid() incarnations to pgtable.h 2008-01-30 13:30:37 +01:00
mmzone_64.h x86: 64-bit, make sparsemem vmemmap the only memory model 2008-01-30 13:30:47 +01:00
mmzone.h
module.h x86: unify module_{32|64}.h 2008-01-30 13:31:43 +01:00
mpspec_def.h x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mpspec.h x86: cleanup smp.h variants 2008-01-30 13:30:36 +01:00
msgbuf.h x86: merge msgbuf_32/64.h 2007-10-23 22:37:24 +02:00
msidef.h
msr-index.h x86: debugctlmsr constants 2008-01-30 13:30:54 +01:00
msr.h x86: cleanup write_tsc 2008-01-30 13:32:05 +01:00
mtrr.h x86: mtrr use type bool [RESEND AGAIN] 2008-01-30 13:30:31 +01:00
mutex_32.h x86: remove fastcall from include/asm-x86 2008-01-30 13:31:17 +01:00
mutex_64.h
mutex.h
namei.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
nmi_32.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
nmi_64.h x86: nmi_64.c: make code static 2008-01-30 13:30:31 +01:00
nmi.h
nops.h x86: move nop declarations into separate include file 2008-01-30 13:32:38 +01:00
numa_32.h
numa_64.h x86: clean up bitops-related warnings 2008-01-30 13:30:55 +01:00
numa.h
numaq.h
page_32.h x64/page.h: convert some macros to inlines 2008-01-30 13:31:09 +01:00
page_64.h x64/page.h: convert some macros to inlines 2008-01-30 13:31:09 +01:00
page.h
param.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
paravirt.h x86: move patching code to arch-specific file. 2008-01-30 13:32:10 +01:00
parport.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
pci_32.h PCI: merge almost all of pci_32.h and pci_64.h together 2007-10-12 15:03:20 -07:00
pci_64.h x86: pci-dma_64.c: cleanups 2008-01-30 13:30:31 +01:00
pci-direct.h
pci.h x86: consolidate toloplogy_32/64.h 2008-01-30 13:30:38 +01:00
pda.h x86: clean up include/asm-x86/pda.h 2008-01-30 13:31:25 +01:00
percpu_32.h
percpu_64.h
percpu.h
pgalloc_32.h
pgalloc_64.h
pgalloc.h
pgtable_32.h x86: put all kern_addr_valid() incarnations to pgtable.h 2008-01-30 13:30:37 +01:00
pgtable_64.h x86: kill mk_pte_huge 2008-01-30 13:31:09 +01:00
pgtable-2level-defs.h
pgtable-2level.h
pgtable-3level-defs.h paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
pgtable-3level.h
pgtable.h
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h
processor-cyrix.h
processor-flags.h KVM: Use standard CR8 flags, and fix TPR definition 2007-10-13 10:18:19 +02:00
processor.h x86: move nop declarations into separate include file 2008-01-30 13:32:38 +01:00
proto.h x86: remove obsolte declarations from proto.h 2008-01-30 13:30:19 +01:00
ptrace-abi.h x86: make ptrace.h safe to include from assembler code 2008-01-30 13:32:36 +01:00
ptrace.h x86, ptrace: new ptrace BTS API 2008-01-30 13:31:20 +01:00
reboot_fixups.h
reboot.h
required-features.h x86: merge required-features.h 2007-10-23 22:37:24 +02:00
resource.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
resume-trace.h x86: merge resume-trace.h variants 2008-01-30 13:30:38 +01:00
rio.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
rtc.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
rwlock.h x86: use immediates instead of RW_LOCK_BIAS_STR 2008-01-30 13:30:34 +01:00
rwsem.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
scatterlist.h x86: merge include/asm-x86/scatterlist.h 2008-01-30 13:30:21 +01:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
segment_32.h x86: remove arch specific segment headers 2008-01-30 13:31:09 +01:00
segment.h x86: remove arch specific segment headers 2008-01-30 13:31:09 +01:00
semaphore_32.h x86: remove fastcall from include/asm-x86 2008-01-30 13:31:17 +01:00
semaphore_64.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
semaphore.h
sembuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
serial.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
setup.h x86: prepare 64-bit architecture initialization for paravirt 2008-01-30 13:31:11 +01:00
shmbuf.h x86: merge shmbuf_32/64.h 2007-10-23 22:37:24 +02:00
shmparam.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
sigcontext32.h x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
sigcontext.h x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
siginfo.h x86: unify include/asm/siginfo_32/64.h 2007-10-17 20:26:17 +02:00
signal.h x86 single_step: TIF_FORCED_TF 2008-01-30 13:30:50 +01:00
smp_32.h x86: cleanup smp.h variants 2008-01-30 13:30:36 +01:00
smp_64.h x86: cleanup smp.h variants 2008-01-30 13:30:36 +01:00
smp.h
socket.h
sockios.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
sparsemem.h x86: merge include/asm-x86/sparsemem.h 2008-01-30 13:30:37 +01:00
spinlock_types.h x86: FIFO ticket spinlocks 2008-01-30 13:31:21 +01:00
spinlock.h x86: cleanup CLI_STRING, STI_STRING and friends 2008-01-30 13:32:09 +01:00
srat.h
stacktrace.h x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
stat.h x86: merge stat_32/64.h 2007-10-23 22:37:24 +02:00
statfs.h x86: merge statfs_32/64.h 2007-10-23 22:37:24 +02:00
string_32.h i386: Remove strrchr assembler implementation 2007-10-17 20:16:23 +02:00
string_64.h
string.h
suspend_32.h x86: unify struct desc_ptr 2008-01-30 13:31:12 +01:00
suspend_64.h x86: make __{save,restore}_processor_state static 2008-01-30 13:31:23 +01:00
suspend.h
swiotlb.h
sync_bitops.h
system_64.h x86: move switch_to macro to system.h 2008-01-30 13:31:08 +01:00
system.h x86: introduce rdtsc_barrier() 2008-01-30 13:32:38 +01:00
tce.h
termbits.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
termios.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
therm_throt.h
thread_info_32.h x86, ptrace: support for branch trace store(BTS) 2008-01-30 13:31:09 +01:00
thread_info_64.h x86: unify mm_segment_t definition 2008-01-30 13:31:38 +01:00
thread_info.h
time.h x86: prepare time related functions for paravirt 2008-01-30 13:31:10 +01:00
timer.h x86: scale cyc_2_nsec according to CPU frequency 2008-01-30 13:30:06 +01:00
timex.h x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
tlb.h x86: unify include/asm/tlb_32/64.h 2007-10-17 20:26:18 +02:00
tlbflush.h x86: merge tlbflush.h variants 2008-01-30 13:30:35 +01:00
topology.h x86: merge topology.h variants 2008-01-30 13:30:38 +01:00
tsc.h x86: move tsc definitions to were they belong 2008-01-30 13:31:26 +01:00
types.h x86: unify include/asm/types_32/64.h 2007-10-17 20:32:07 +02:00
uaccess_32.h
uaccess_64.h x86: use helper in fault_64.c 2008-01-30 13:31:42 +01:00
uaccess.h
ucontext.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unaligned.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unistd_32.h
unistd_64.h x86: cleanup 64bit unistd.h 2007-10-17 20:16:36 +02:00
unistd.h
unwind.h x86: unify include/asm/unwind_32/64.h 2007-10-17 20:32:38 +02:00
user32.h
user_32.h x86: use generic register names in struct user_regs_struct 2008-01-30 13:30:56 +01:00
user_64.h x86: use generic register names in struct user_regs_struct 2008-01-30 13:30:56 +01:00
user.h
vdso.h x86 vDSO: i386 vdso32 2008-01-30 13:30:42 +01:00
vga.h
vgtod.h
vic.h
vm86.h
vmi_time.h
vmi.h
voyager.h
vsyscall.h i386/x8664: cleanup the shared hpet code 2007-10-12 23:04:23 +02:00
xor_32.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
xor_64.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
xor.h