From: tip-bot for Davidlohr Bueso <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
torvalds@linux-foundation.org, peterz@infradead.org,
tglx@linutronix.de, davidlohr@hp.com
Subject: [tip:locking/core] locking/mutexes: Document quick lock release when unlocking
Date: Wed, 13 Aug 2014 03:55:06 -0700 [thread overview]
Message-ID: <tip-42fa566bd74aa7b95413fb00611ec983b488222d@git.kernel.org> (raw)
In-Reply-To: <1406752916-3341-2-git-send-email-davidlohr@hp.com>
Commit-ID: 42fa566bd74aa7b95413fb00611ec983b488222d
Gitweb: http://git.kernel.org/tip/42fa566bd74aa7b95413fb00611ec983b488222d
Author: Davidlohr Bueso <davidlohr@hp.com>
AuthorDate: Wed, 30 Jul 2014 13:41:51 -0700
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Aug 2014 10:31:59 +0200
locking/mutexes: Document quick lock release when unlocking
When unlocking, we always want to reach the slowpath with the lock's counter
indicating it is unlocked. -- as returned by the asm fastpath call or by
explicitly setting it. While doing so, at least in theory, we can optimize
and allow faster lock stealing.
When unlocking, we always want to reach the slowpath with the lock's counter
indicating it is unlocked. -- as returned by the asm fastpath call or by
explicitly setting it. While doing so, at least in theory, we can optimize
and allow faster lock stealing.
Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: jason.low2@hp.com
Cc: aswin@hp.com
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1406752916-3341-2-git-send-email-davidlohr@hp.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
kernel/locking/mutex.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
index ad0e333..93bec48 100644
--- a/kernel/locking/mutex.c
+++ b/kernel/locking/mutex.c
@@ -684,9 +684,16 @@ __mutex_unlock_common_slowpath(struct mutex *lock, int nested)
unsigned long flags;
/*
- * some architectures leave the lock unlocked in the fastpath failure
+ * As a performance measurement, release the lock before doing other
+ * wakeup related duties to follow. This allows other tasks to acquire
+ * the lock sooner, while still handling cleanups in past unlock calls.
+ * This can be done as we do not enforce strict equivalence between the
+ * mutex counter and wait_list.
+ *
+ *
+ * Some architectures leave the lock unlocked in the fastpath failure
* case, others need to leave it locked. In the later case we have to
- * unlock it here
+ * unlock it here - as the lock counter is currently 0 or negative.
*/
if (__mutex_slowpath_needs_to_unlock())
atomic_set(&lock->count, 1);
next prev parent reply other threads:[~2014-08-13 10:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-30 20:41 [PATCH -tip v2 1/7] locking/mutex: Standardize arguments in lock/unlock slowpaths Davidlohr Bueso
2014-07-30 20:41 ` [PATCH -tip v2 2/7] locking/mutex: Document quick lock release when unlocking Davidlohr Bueso
2014-08-13 10:55 ` tip-bot for Davidlohr Bueso [this message]
2014-07-30 20:41 ` [PATCH -tip v2 3/7] locking/mcs: Remove obsolete comment Davidlohr Bueso
2014-08-13 10:55 ` [tip:locking/core] " tip-bot for Davidlohr Bueso
2014-07-30 20:41 ` [PATCH -tip v2 4/7] locking/mutex: Refactor optimistic spinning code Davidlohr Bueso
2014-07-31 0:56 ` Jason Low
2014-08-13 10:55 ` [tip:locking/core] locking/mutexes: " tip-bot for Davidlohr Bueso
2014-07-30 20:41 ` [PATCH -tip v2 5/7] locking/mutex: Use MUTEX_SPIN_ON_OWNER when appropriate Davidlohr Bueso
2014-08-13 10:55 ` [tip:locking/core] locking/mutexes: " tip-bot for Davidlohr Bueso
2014-07-30 20:41 ` [PATCH -tip v2 6/7] locking: Move docs into Documentation/locking/ Davidlohr Bueso
2014-07-30 21:02 ` Randy Dunlap
2014-07-31 6:53 ` Peter Zijlstra
2014-08-13 10:56 ` [tip:locking/core] locking/Documentation: Move locking related " tip-bot for Davidlohr Bueso
2014-07-30 20:41 ` [PATCH -tip v2 7/7] Documentation: Update locking/mutex-design.txt disadvantages Davidlohr Bueso
2014-08-13 10:56 ` [tip:locking/core] locking/Documentation: Update locking/ mutex-design.txt disadvantages tip-bot for Davidlohr Bueso
2014-08-13 10:54 ` [tip:locking/core] locking/mutexes: Standardize arguments in lock /unlock slowpaths tip-bot for Davidlohr Bueso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-42fa566bd74aa7b95413fb00611ec983b488222d@git.kernel.org \
--to=tipbot@zytor.com \
--cc=davidlohr@hp.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox