Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Oct 2025 02:23:11 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: 6cc493c79d9b - main - mtx: remove stale commentary about inlined spinlock ops
Message-ID:  <202510040223.5942NBCf037911@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=6cc493c79d9b9f8318c87d3d6bfd225924cc933b

commit 6cc493c79d9b9f8318c87d3d6bfd225924cc933b
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2025-10-04 02:20:37 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2025-10-04 02:20:37 +0000

    mtx: remove stale commentary about inlined spinlock ops
    
    While both locking and unlocking a spinlock used to be inline, this
    changed when spinlock_enter/spinlock_exit got introduced, defeating the
    point of inlining them.
    
    This either needs to have inlined spinlock enter/exit in place or have
    mtx lock/unlock as function calls with the irq flags inlined in there.
    
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 sys/sys/mutex.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/sys/sys/mutex.h b/sys/sys/mutex.h
index 08d4e2d28b33..b534a74626bc 100644
--- a/sys/sys/mutex.h
+++ b/sys/sys/mutex.h
@@ -246,10 +246,10 @@ void	_thread_lock(struct thread *);
 })
 
 /*
- * Lock a spin mutex.  For spinlocks, we handle recursion inline (it
- * turns out that function calls can be significantly expensive on
- * some architectures).  Since spin locks are not _too_ common,
- * inlining this code is not too big a deal.
+ * Lock a spin mutex.
+ *
+ * FIXME: spinlock_enter is a function call, defeating the point of inlining in
+ * this.
  */
 #ifdef SMP
 #define __mtx_lock_spin(mp, tid, opts, file, line) __extension__ ({	\
@@ -317,10 +317,10 @@ void	_thread_lock(struct thread *);
 })
 
 /*
- * Unlock a spin mutex.  For spinlocks, we can handle everything
- * inline, as it's pretty simple and a function call would be too
- * expensive (at least on some architectures).  Since spin locks are
- * not _too_ common, inlining this code is not too big a deal.
+ * Unlock a spin mutex.
+ *
+ * FIXME: spinlock_exit is a function call, defeating the point of inlining in
+ * this.
  *
  * Since we always perform a spinlock_enter() when attempting to acquire a
  * spin lock, we need to always perform a matching spinlock_exit() when



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