Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 May 2021 21:05:40 GMT
From:      Mateusz Guzik <mjg@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 138f78e94bf8 - main - umtx: convert umtxq_lock to a macro
Message-ID:  <202105222105.14ML5eAK021362@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by mjg:

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

commit 138f78e94bf83a8a92987d8be81f1e2c6c277cf8
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2021-05-22 20:51:37 +0000
Commit:     Mateusz Guzik <mjg@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202105222105.14ML5eAK021362>