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

Commit ef48bd24 authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Linus Torvalds
Browse files

Document the fact that RCU callbacks can run in parallel



Add an item to the RCU documentation checklist noting that RCU callbacks
can run in parallel.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4d3b573a
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -222,7 +222,15 @@ over a rather long period of time, but improvements are always welcome!
	deadlock as soon as the RCU callback happens to interrupt that
	acquisition's critical section.

13.	SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu())
13.	RCU callbacks can be and are executed in parallel.  In many cases,
	the callback code simply wrappers around kfree(), so that this
	is not an issue (or, more accurately, to the extent that it is
	an issue, the memory-allocator locking handles it).  However,
	if the callbacks do manipulate a shared data structure, they
	must use whatever locking or other synchronization is required
	to safely access and/or modify that data structure.

14.	SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu())
	may only be invoked from process context.  Unlike other forms of
	RCU, it -is- permissible to block in an SRCU read-side critical
	section (demarked by srcu_read_lock() and srcu_read_unlock()),