git: 0917d91b3344 - stable/13 - umtx: convert umtxq_lock to a macro

Mateusz Guzik mjg at FreeBSD.org
Mon Jun 7 00:40:10 UTC 2021


The branch stable/13 has been updated by mjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=0917d91b33444ca55b132954cc33f0d409f5a4cc

commit 0917d91b33444ca55b132954cc33f0d409f5a4cc
Author:     Mateusz Guzik <mjg at FreeBSD.org>
AuthorDate: 2021-05-22 20:51:37 +0000
Commit:     Mateusz Guzik <mjg at FreeBSD.org>
CommitDate: 2021-06-07 00:34:52 +0000

    umtx: convert umtxq_lock to a macro
    
    Then LOCK_PROFILING starts reporting callers instead of the inline.
    
    (cherry picked from commit 138f78e94bf83a8a92987d8be81f1e2c6c277cf8)
---
 sys/kern/kern_umtx.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c
index 784c10cb97ac..a1dca77fe991 100644
--- a/sys/kern/kern_umtx.c
+++ b/sys/kern/kern_umtx.c
@@ -272,7 +272,6 @@ static void umtx_shm_init(void);
 static void umtxq_sysinit(void *);
 static void umtxq_hash(struct umtx_key *key);
 static struct umtxq_chain *umtxq_getchain(struct umtx_key *key);
-static void umtxq_lock(struct umtx_key *key);
 static void umtxq_unlock(struct umtx_key *key);
 static void umtxq_busy(struct umtx_key *key);
 static void umtxq_unbusy(struct umtx_key *key);
@@ -501,15 +500,16 @@ umtxq_getchain(struct umtx_key *key)
 
 /*
  * Lock a chain.
+ *
+ * The code is a macro so that file/line information is taken from the caller.
  */
-static inline void
-umtxq_lock(struct umtx_key *key)
-{
-	struct umtxq_chain *uc;
-
-	uc = umtxq_getchain(key);
-	mtx_lock(&uc->uc_lock);
-}
+#define umtxq_lock(key) do {		\
+	struct umtx_key *_key = (key);	\
+	struct umtxq_chain *_uc;	\
+					\
+	_uc = umtxq_getchain(_key);	\
+	mtx_lock(&_uc->uc_lock);	\
+} while (0)
 
 /*
  * Unlock a chain.


More information about the dev-commits-src-all mailing list