x86: micro-optimize __raw_read_trylock()
authorFrederic Weisbecker <fweisbec@gmail.com>
Sun, 25 Jan 2009 20:50:13 +0000 (12:50 -0800)
committerIngo Molnar <mingo@elte.hu>
Mon, 26 Jan 2009 13:06:36 +0000 (14:06 +0100)
commit2d4d57db692ea790e185656516e6ebe8791f1788
treef7ad21dbcb4d5de2f0eb63024c1b5f1bf5321d76
parent7106a5ab89c50c6b5aadea0850b40323804a922d
x86: micro-optimize __raw_read_trylock()

The current version of __raw_read_trylock starts with decrementing the lock
and read its new value as a separate operation after that.

That makes 3 dereferences (read, write (after sub), read) whereas
a single atomic_dec_return does only two pointers dereferences (read, write).

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/spinlock.h