]> git.karo-electronics.de Git - karo-tx-linux.git/commit
locking/mcs: Micro-optimize the MCS code, add extra comments
authorJason Low <jason.low2@hp.com>
Tue, 21 Jan 2014 23:36:05 +0000 (15:36 -0800)
committerIngo Molnar <mingo@kernel.org>
Tue, 28 Jan 2014 12:13:28 +0000 (13:13 +0100)
commit5faeb8adb956a5ad6579c4e309e8689943ad8294
tree7b80bcdd7e59b323d5a7b72f634ca5e6dee2017a
parente72246748ff006ab928bc774e276e6ef5542f9c5
locking/mcs: Micro-optimize the MCS code, add extra comments

Remove unnecessary operation to assign locked status to 1 if lock is
acquired without contention. Lock status will not be checked by lock
holder again once it is acquired and any lock
contenders will not be looking at the lock holder's lock status.

Make the cmpxchg(lock, node, NULL) == node check in mcs_spin_unlock()
likely() as it is likely that a race did not occur most of the time.

Also add in more comments describing how the local node is used in MCS locks.

Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Jason Low <jason.low2@hp.com>
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/1390347365.3138.64.camel@schen9-DESK
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/mcs_spinlock.h