From: Nick Piggin Date: Tue, 21 Oct 2008 08:59:15 +0000 (+0200) Subject: mutex: speed up generic mutex implementations X-Git-Tag: v2.6.28-rc1~49 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8ddac7e53e89cb877965097d05adfeb1c91def3;p=pandora-kernel.git 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 Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed