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>
Loading
Please register or sign in to comment