aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/mutex.h
diff options
context:
space:
mode:
authorJason Low <jason.low2@hp.com>2014-01-28 11:13:14 -0800
committerIngo Molnar <mingo@kernel.org>2014-03-11 12:14:54 +0100
commit1d8fe7dc8078b23e060ec62ccb4cdc1ac3c41bf8 (patch)
tree1640ad75e3eea39dee169b8c415d53cd599e830c /include/linux/mutex.h
parentlocking/mutexes: Modify the way optimistic spinners are queued (diff)
downloadwireguard-linux-1d8fe7dc8078b23e060ec62ccb4cdc1ac3c41bf8.tar.xz
wireguard-linux-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