]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
doc: Make checklist.rst note that spinlocks are implied RCU readers
authorPaul E. McKenney <paulmck@kernel.org>
Sat, 25 Nov 2023 00:23:56 +0000 (16:23 -0800)
committerBoqun Feng <boqun.feng@gmail.com>
Wed, 14 Feb 2024 15:53:49 +0000 (07:53 -0800)
In kernels built with CONFIG_PREEMPT_RT=n, spinlock critical sections
are RCU readers because they disable preemption.  However, they are also
RCU readers in CONFIG_PREEMPT_RT=y because in that case the locking
primitives contain rcu_read_lock() and rcu_read_unlock().  Therefore,
upgrade checklist.rst to document this non-obvious case.

While in the area, fix a typo by changing "read-side critical" to
"read-side critical section".

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Documentation/RCU/checklist.rst

index 2d42998a89a6378a94521d49785c4f1632b25a34..98a622f772481647a55d1af1e4d6c375526b514f 100644 (file)
@@ -68,7 +68,8 @@ over a rather long period of time, but improvements are always welcome!
        rcu_read_lock_sched(), or by the appropriate update-side lock.
        Explicit disabling of preemption (preempt_disable(), for example)
        can serve as rcu_read_lock_sched(), but is less readable and
-       prevents lockdep from detecting locking issues.
+       prevents lockdep from detecting locking issues.  Acquiring a
+       spinlock also enters an RCU read-side critical section.
 
        Please note that you *cannot* rely on code known to be built
        only in non-preemptible kernels.  Such code can and will break,
@@ -444,7 +445,7 @@ over a rather long period of time, but improvements are always welcome!
        real-time workloads than is synchronize_rcu_expedited().
 
        It is also permissible to sleep in RCU Tasks Trace read-side
-       critical, which are delimited by rcu_read_lock_trace() and
+       critical section, which are delimited by rcu_read_lock_trace() and
        rcu_read_unlock_trace().  However, this is a specialized flavor
        of RCU, and you should not use it without first checking with
        its current users.  In most cases, you should instead use SRCU.