git: 138f78e94bf8 - main - umtx: convert umtxq_lock to a macro

Mateusz Guzik mjg at FreeBSD.org
Sat May 22 21:05:41 UTC 2021


The branch main has been updated by mjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=138f78e94bf83a8a92987d8be81f1e2c6c277cf8

commit 138f78e94bf83a8a92987d8be81f1e2c6c277cf8
Author:     Mateusz Guzik <mjg at FreeBSD.org>
AuthorDate: 2021-05-22 20:51:37 +0000
Commit:     Mateusz Guzik <mjg at FreeBSD.org>
CommitDate: 2021-05-22 21:01:05 +0000

    umtx: convert umtxq_lock to a macro
    
    Then LOCK_PROFILING starts reporting callers instead of the inline.
---
 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