Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84483ea4 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

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: default avatarDavid Miller <davem@davemloft.net>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
parent 4b6a2872
Loading
Loading
Loading
Loading
+23 −0
Original line number Original line Diff line number Diff line
@@ -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
	and the compiler to freely reorder code into and out of RCU
	read-side critical sections.  It is the responsibility of the
	read-side critical sections.  It is the responsibility of the
	RCU update-side primitives to deal with this.
	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.