kernel-ark/include
Nick Piggin a8ddac7e53 mutex: speed up generic mutex implementations
- atomic operations which both modify the variable and return something imply
  full smp memory barriers before and after the memory operations involved
  (failing atomic_cmpxchg, atomic_add_unless, etc don't imply a barrier because
  they don't modify the target). See Documentation/atomic_ops.txt.
  So remove extra barriers and branches.

- All architectures support atomic_cmpxchg. This has no relation to
  __HAVE_ARCH_CMPXCHG. We can just take the atomic_cmpxchg path unconditionally

This reduces a simple single threaded fastpath lock+unlock test from 590 cycles
to 203 cycles on a ppc970 system.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-23 09:18:20 -07:00
..
acpi include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
asm-arm
asm-cris container freezer: add TIF_FREEZE flag to all architectures 2008-10-20 08:52:33 -07:00
asm-frv ide: fix support for IDE PCI controllers using MMIO on frv 2008-10-17 18:09:14 +02:00
asm-generic mutex: speed up generic mutex implementations 2008-10-23 09:18:20 -07:00
asm-h8300 h8300: update timer handler - new files 2008-10-16 11:21:29 -07:00
asm-m32r
asm-m68k Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 2008-10-20 13:12:39 -07:00
asm-mn10300
asm-um container freezer: add TIF_FREEZE flag to all architectures 2008-10-20 08:52:33 -07:00
asm-x86 Merge branch 'tracing-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:35:07 -07:00
asm-xtensa Merge git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6 2008-10-23 09:16:56 -07:00
crypto
drm radeon: fix PCI bus mastering support enables. 2008-10-18 07:10:54 +10:00
keys
linux memcg: fix page_cgroup allocation 2008-10-23 08:55:02 -07:00
math-emu
media V4L/DVB (9276): videobuf-dvb: two functions are now static 2008-10-17 17:39:14 -03:00
mtd
net Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs 2008-10-20 09:39:47 -07:00
pcmcia
rdma
rxrpc
scsi
sound
trace
video video: add sh_mobile_lcdc platform flags 2008-10-20 11:38:50 +09:00
xen
Kbuild