aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-06-16 19:48:13 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-19 20:18:01 -0400
commit84483ea42cd4f2781d6e97a83ab3ebd0ff19fb10 (patch)
treec79e79331ab451218aac8c99b74797291beaf841 /Documentation
parent4b6a2872a2a00042ee50024822ab706e5456aad8 (diff)
rcu: add shiny new debug assists to Documentation/RCU/checklist.txt
Add a section describing PROVE_RCU, DEBUG_OBJECTS_RCU_HEAD, and the __rcu sparse checking to the RCU checklist. Suggested-by: David Miller <davem@davemloft.net> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/RCU/checklist.txt23
1 files changed, 23 insertions, 0 deletions
diff --git a/Documentation/RCU/checklist.txt b/Documentation/RCU/checklist.txt
index 790d1a812376..c7c6788956f4 100644
--- a/Documentation/RCU/checklist.txt
+++ b/Documentation/RCU/checklist.txt
@@ -365,3 +365,26 @@ over a rather long period of time, but improvements are always welcome!
365 and the compiler to freely reorder code into and out of RCU 365 and the compiler to freely reorder code into and out of RCU
366 read-side critical sections. It is the responsibility of the 366 read-side critical sections. It is the responsibility of the
367 RCU update-side primitives to deal with this. 367 RCU update-side primitives to deal with this.
368
36917. Use CONFIG_PROVE_RCU, CONFIG_DEBUG_OBJECTS_RCU_HEAD, and
370 the __rcu sparse checks to validate your RCU code. These
371 can help find problems as follows:
372
373 CONFIG_PROVE_RCU: check that accesses to RCU-protected data
374 structures are carried out under the proper RCU
375 read-side critical section, while holding the right
376 combination of locks, or whatever other conditions
377 are appropriate.
378
379 CONFIG_DEBUG_OBJECTS_RCU_HEAD: check that you don't pass the
380 same object to call_rcu() (or friends) before an RCU
381 grace period has elapsed since the last time that you
382 passed that same object to call_rcu() (or friends).
383
384 __rcu sparse checks: tag the pointer to the RCU-protected data
385 structure with __rcu, and sparse will warn you if you
386 access that pointer without the services of one of the
387 variants of rcu_dereference().
388
389 These debugging aids can help you find problems that are
390 otherwise extremely difficult to spot.