linux_dsm_epyc7002/arch/x86
Jeremy Fitzhardinge c576a3ea90 x86, ticketlock: Convert spin loop to C
The inner loop of __ticket_spin_lock isn't doing anything very special,
so reimplement it in C.

For the 8 bit ticket lock variant, we use a register union to get direct
access to the lower and upper bytes in the tickets, but unfortunately gcc
won't generate a direct comparison between the two halves of the register,
so the generated asm isn't quite as pretty as the hand-coded version.
However benchmarking shows that this is actually a small improvement in
runtime performance on some benchmarks, and never a slowdown.

We also need to make sure there's a barrier at the end of the lock loop
to make sure that the compiler doesn't move any instructions from within
the locked region into the region where we don't yet own the lock.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Link: http://lkml.kernel.org/r/4E5BCC40.3030501@goop.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2011-08-29 13:45:43 -07:00
..
boot x86, build: Do not set the root_dev field in bzImage 2011-05-25 12:46:05 -07:00
configs cgroup: remove the ns_cgroup 2011-05-26 17:12:34 -07:00
crypto crypto: ghash-intel - Fix set but not used in ghash_async_setkey() 2011-06-30 07:43:42 +08:00
ia32 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
include/asm x86, ticketlock: Convert spin loop to C 2011-08-29 13:45:43 -07:00
kernel All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
kvm Merge branch 'kvm-updates/3.1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-08-16 11:14:44 -07:00
lguest lguest: Fix translation count about wikipedia's cpuid page 2011-07-22 14:39:50 +09:30
lib atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
math-emu
mm x86: fix mm/fault.c build 2011-08-15 19:10:50 -07:00
net net: filter: Just In Time compiler for x86-64 2011-04-27 23:05:08 -07:00
oprofile x86, perf: Make copy_from_user_nmi() a library function 2011-07-21 20:41:57 +02:00
pci PCI: Set PCI-E Max Payload Size on fabric 2011-08-01 11:49:16 -07:00
platform sfi: table irq 0xFF means 'no interrupt' 2011-08-26 09:03:29 -07:00
power
tools
vdso Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-08-23 18:09:08 -07:00
video
xen Merge branch 'stable/bug.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-08-22 11:25:44 -07:00
.gitignore
Kbuild net: filter: Just In Time compiler for x86-64 2011-04-27 23:05:08 -07:00
Kconfig Merge commit 'v3.0' into x86/vdso 2011-08-04 16:13:20 -07:00
Kconfig.cpu x86: Add support for cmpxchg_double 2011-06-25 12:17:32 -07:00
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile
Makefile_32.cpu x86, cpu: Move AMD Elan Kconfig under "Processor family" 2011-04-08 13:01:25 -07:00