doc: Emphasize the need for explicit RCU read-side markers
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 5 Jul 2022 19:15:35 +0000 (12:15 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 31 Aug 2022 11:58:14 +0000 (04:58 -0700)
This commit updates checklist.rst to emphasize the need for explicit
markers for RCU read-side critical sections.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Documentation/RCU/checklist.rst

index 42cc5d891bd26e4d3841c04e1bad52d01fcb62b7..5eedef027d922a64a75636ee2f0ff54191410df2 100644 (file)
@@ -66,8 +66,13 @@ over a rather long period of time, but improvements are always welcome!
        As a rough rule of thumb, any dereference of an RCU-protected
        pointer must be covered by rcu_read_lock(), rcu_read_lock_bh(),
        rcu_read_lock_sched(), or by the appropriate update-side lock.
-       Disabling of preemption can serve as rcu_read_lock_sched(), but
-       is less readable and prevents lockdep from detecting locking issues.
+       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.
+
+       Please not that you *cannot* rely on code known to be built
+       only in non-preemptible kernels.  Such code can and will break,
+       especially in kernels built with CONFIG_PREEMPT_COUNT=y.
 
        Letting RCU-protected pointers "leak" out of an RCU read-side
        critical section is every bit as bad as letting them leak out