diff options
author | Jason Low <jason.low2@hp.com> | 2014-01-28 11:13:14 -0800 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-03-11 12:14:54 +0100 |
commit | 1d8fe7dc8078b23e060ec62ccb4cdc1ac3c41bf8 (patch) | |
tree | 1640ad75e3eea39dee169b8c415d53cd599e830c /include/linux/mutex.h | |
parent | 47667fa1502e4d759df87e9cc7fbc0f202483361 (diff) | |
download | linux-stable-1d8fe7dc8078b23e060ec62ccb4cdc1ac3c41bf8.tar.gz linux-stable-1d8fe7dc8078b23e060ec62ccb4cdc1ac3c41bf8.tar.bz2 linux-stable-1d8fe7dc8078b23e060ec62ccb4cdc1ac3c41bf8.zip |
locking/mutexes: Unlock the mutex without the wait_lock
When running workloads that have high contention in mutexes on an 8 socket
machine, mutex spinners would often spin for a long time with no lock owner.
The main reason why this is occuring is in __mutex_unlock_common_slowpath(),
if __mutex_slowpath_needs_to_unlock(), then the owner needs to acquire the
mutex->wait_lock before releasing the mutex (setting lock->count to 1). When
the wait_lock is contended, this delays the mutex from being released.
We should be able to release the mutex without holding the wait_lock.
Signed-off-by: Jason Low <jason.low2@hp.com>
Cc: chegu_vinod@hp.com
Cc: paulmck@linux.vnet.ibm.com
Cc: Waiman.Long@hp.com
Cc: torvalds@linux-foundation.org
Cc: tglx@linutronix.de
Cc: riel@redhat.com
Cc: akpm@linux-foundation.org
Cc: davidlohr@hp.com
Cc: hpa@zytor.com
Cc: andi@firstfloor.org
Cc: aswin@hp.com
Cc: scott.norton@hp.com
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1390936396-3962-4-git-send-email-jason.low2@hp.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/mutex.h')
0 files changed, 0 insertions, 0 deletions