Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/share/man/man9 mutex(9): Minor formatting fixes



details:   https://anonhg.NetBSD.org/src/rev/68ebda36c7b0
branches:  trunk
changeset: 372670:68ebda36c7b0
user:      uwe <uwe%NetBSD.org@localhost>
date:      Mon Dec 19 00:41:45 2022 +0000

description:
mutex(9): Minor formatting fixes

While here, move the reference to options(4) to the OPTIONS section.

diffstat:

 share/man/man9/mutex.9 |  72 ++++++++++++++++++++-----------------------------
 1 files changed, 30 insertions(+), 42 deletions(-)

diffs (202 lines):

diff -r 6f5155b0dfde -r 68ebda36c7b0 share/man/man9/mutex.9
--- a/share/man/man9/mutex.9    Sun Dec 18 23:38:42 2022 +0000
+++ b/share/man/man9/mutex.9    Mon Dec 19 00:41:45 2022 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: mutex.9,v 1.33 2022/12/18 23:38:42 gutteridge Exp $
+.\"    $NetBSD: mutex.9,v 1.34 2022/12/19 00:41:45 uwe Exp $
 .\"
 .\" Copyright (c) 2007, 2009 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -67,7 +67,8 @@
 .Cd "options LOCKDEBUG"
 .Sh DESCRIPTION
 Mutexes are used in the kernel to implement mutual exclusion among LWPs
-(lightweight processes) and interrupt handlers.
+.Pq lightweight processes
+and interrupt handlers.
 .Pp
 The
 .Vt kmutex_t
@@ -80,23 +81,21 @@
 system traditionally used to provide synchronization between interrupt
 handlers and LWPs.
 .Sh OPTIONS
-.Bl -tag -width abcd
+The following kernel options have effect on mutex operations:
+.Bl -tag -width Cd
 .It Cd "options DIAGNOSTIC"
-.Pp
 Kernels compiled with the
 .Dv DIAGNOSTIC
 option perform basic sanity checks on mutex operations.
 .It Cd "options LOCKDEBUG"
-.Pp
 Kernels compiled with the
 .Dv LOCKDEBUG
 option perform potentially CPU intensive sanity checks
 on mutex operations.
 .El
 .Sh FUNCTIONS
-.Bl -tag -width abcd
+.Bl -tag -width Ds
 .It Fn mutex_init "mtx" "type" "ipl"
-.Pp
 Dynamically initialize a mutex for use.
 .Pp
 No other operations can be performed on a mutex until it has been initialized.
@@ -115,9 +114,8 @@
 The type of mutex returned depends on the
 .Fa ipl
 argument:
-.Bl -tag -width abcd
-.It IPL_NONE, or one of the IPL_SOFT* constants
-.Pp
+.Bl -tag -width Dv
+.It Dv IPL_NONE , No or one of the Dv IPL_SOFT* No constants
 An adaptive mutex will be returned.
 Adaptive mutexes provide mutual exclusion between LWPs,
 and between LWPs and soft interrupt handlers.
@@ -125,8 +123,7 @@
 Adaptive mutexes cannot be acquired from a hardware interrupt handler.
 An LWP may either sleep or busy-wait when attempting to acquire
 an adaptive mutex that is already held.
-.It IPL_VM, IPL_SCHED, IPL_HIGH
-.Pp
+.It Dv IPL_VM , IPL_SCHED , IPL_HIGH
 A spin mutex will be returned.
 Spin mutexes provide mutual exclusion between LWPs, and between LWPs
 and interrupt handlers.
@@ -160,13 +157,11 @@
 .Xr spl 9
 for further information on interrupt priority levels (IPLs).
 .It Fn mutex_destroy "mtx"
-.Pp
 Release resources used by a mutex.
 The mutex may not be used after it has been destroyed.
 .Fn mutex_destroy
 may block in order to free memory.
 .It Fn mutex_enter "mtx"
-.Pp
 Acquire a mutex.
 If the mutex is already held, the caller will block and not return until the
 mutex is acquired.
@@ -194,7 +189,6 @@
 .Fn mutex_init
 if it is not already equal or higher.
 .It Fn mutex_exit "mtx"
-.Pp
 Release a mutex.
 The mutex must have been previously acquired by the caller.
 Mutexes may be released out of order as needed.
@@ -210,17 +204,16 @@
 Thus, there is a global total ordering on all loads and stores under
 the same mutex.
 .It Fn mutex_ownable "mtx"
-.Pp
 When compiled with
 .Dv LOCKDEBUG
-(see
-.Xr options 4 ) ,
 ensure that the current process can successfully acquire
 .Ar mtx .
 If
 .Ar mtx
 is already owned by the current process, the system will panic
-with a "locking against myself" error.
+with a
+.Dq locking against myself\^
+error.
 .Pp
 This function is needed because
 .Fn mutex_owned
@@ -230,7 +223,6 @@
 is reasonably heavy-weight, and should only be used with
 .Xr KDASSERT 9 .
 .It Fn mutex_owned "mtx"
-.Pp
 For adaptive mutexes, return non-zero if the current LWP holds the mutex.
 For spin mutexes, return non-zero if the mutex is held, potentially by the
 current processor.
@@ -239,14 +231,11 @@
 .Fn mutex_owned
 is provided for making diagnostic checks to verify that a lock is held.
 For example:
-.Bd -literal
-       KASSERT(mutex_owned(&driver_lock));
-.Ed
+.Dl KASSERT(mutex_owned(&driver_lock));
 .Pp
 It should not be used to make locking decisions at run time.
 For spin mutexes, it must not be used to verify that a lock is not held.
 .It Fn mutex_spin_enter "mtx"
-.Pp
 Equivalent to
 .Fn mutex_enter ,
 but may only be used when it is known that
@@ -257,7 +246,6 @@
 On some architectures, this can substantially reduce the cost of acquiring
 a spin mutex.
 .It Fn mutex_spin_exit "mtx"
-.Pp
 Equivalent to
 .Fn mutex_exit ,
 but may only be used when it is known that
@@ -268,7 +256,6 @@
 On some architectures, this can substantially reduce the cost of releasing
 a spin mutex.
 .It Fn mutex_tryenter "mtx"
-.Pp
 Try to acquire a mutex, but do not block if the mutex is already held.
 Returns non-zero if the mutex was acquired, or zero if the mutex was
 already held.
@@ -276,26 +263,26 @@
 .Fn mutex_tryenter
 can be used as an optimization when acquiring locks in the wrong order.
 For example, in a setting where the convention is that
-.Dv first_lock
+.Va first_lock
 must be acquired before
-.Dv second_lock ,
+.Va second_lock ,
 the following can be used to optimistically lock in reverse order:
-.Bd -literal
-       /* We hold second_lock, but not first_lock. */
-       KASSERT(mutex_owned(&second_lock));
+.Bd -literal -offset indent
+/* We hold second_lock, but not first_lock. */
+KASSERT(mutex_owned(&second_lock));
 
-       if (!mutex_tryenter(&first_lock)) {
-               /* Failed to get it - lock in the correct order. */
-               mutex_exit(&second_lock);
-               mutex_enter(&first_lock);
-               mutex_enter(&second_lock);
+if (!mutex_tryenter(&first_lock)) {
+        /* Failed to get it - lock in the correct order. */
+        mutex_exit(&second_lock);
+        mutex_enter(&first_lock);
+        mutex_enter(&second_lock);
 
-               /*
-                * We may need to recheck any conditions the code
-                * path depends on, as we released second_lock
-                * briefly.
-                */
-       }
+        /*
+         * We may need to recheck any conditions the code
+         * path depends on, as we released second_lock
+         * briefly.
+         */
+}
 .Ed
 .El
 .Sh CODE REFERENCES
@@ -309,6 +296,7 @@
 .Sh SEE ALSO
 .Xr atomic_ops 3 ,
 .Xr membar_ops 3 ,
+.Xr options 4 ,
 .Xr lockstat 8 ,
 .Xr condvar 9 ,
 .Xr kpreempt 9 ,



Home | Main Index | Thread Index | Old Index