[PATCH RFC tip/core/rcu 24/30] rcu: add shiny new debug assists to Documentation/RCU/checklist.txt

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Paul E. McKenney
Date: Wednesday, July 14, 2010 - 1:09 pm

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>
---
 Documentation/RCU/checklist.txt |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/Documentation/RCU/checklist.txt b/Documentation/RCU/checklist.txt
index 790d1a8..c7c6788 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!
 	and the compiler to freely reorder code into and out of RCU
 	read-side critical sections.  It is the responsibility of the
 	RCU update-side primitives to deal with this.
+
+17.	Use CONFIG_PROVE_RCU, CONFIG_DEBUG_OBJECTS_RCU_HEAD, and
+	the __rcu sparse checks to validate your RCU code.  These
+	can help find problems as follows:
+
+	CONFIG_PROVE_RCU: check that accesses to RCU-protected data
+		structures are carried out under the proper RCU
+		read-side critical section, while holding the right
+		combination of locks, or whatever other conditions
+		are appropriate.
+
+	CONFIG_DEBUG_OBJECTS_RCU_HEAD: check that you don't pass the
+		same object to call_rcu() (or friends) before an RCU
+		grace period has elapsed since the last time that you
+		passed that same object to call_rcu() (or friends).
+
+	__rcu sparse checks: tag the pointer to the RCU-protected data
+		structure with __rcu, and sparse will warn you if you
+		access that pointer without the services of one of the
+		variants of rcu_dereference().
+
+	These debugging aids can help you find problems that are
+	otherwise extremely difficult to spot.
-- 
1.7.0.6

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH RFC tip/core/rcu 04/30] cgroups: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 05/30] credentials: rcu annotation, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 06/30] keys: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 07/30] nfs: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 08/30] net: __rcu annotations for ..., Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 09/30] perf_event: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 10/30] notifiers: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 11/30] radix-tree: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 0/30] RCU commits queued for 2.6.36/7, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 12/30] idr: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 13/30] input: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 15/30] kvm: add __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 16/30] kernel: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 17/30] net: __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 18/30] kvm: more __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 19/30] vhost: add __rcu annotations, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 23/30] rcu head remove init, Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 24/30] rcu: add shiny new debug as ..., Paul E. McKenney, (Wed Jul 14, 1:09 pm)
[PATCH RFC tip/core/rcu 26/30] rcu: simplify the usage of ..., Paul E. McKenney, (Wed Jul 14, 1:10 pm)
[PATCH RFC tip/core/rcu 29/30] rcu: add boot parameter to ..., Paul E. McKenney, (Wed Jul 14, 1:10 pm)
[PATCH RFC tip/core/rcu 30/30] rcu: improve kerneldoc for ..., Paul E. McKenney, (Wed Jul 14, 1:10 pm)
Re: [PATCH RFC tip/core/rcu 07/30] nfs: __rcu annotations, Trond Myklebust, (Wed Jul 14, 3:07 pm)