Skip to content

Commit

Permalink
Document the fact that RCU callbacks can run in parallel
Browse files Browse the repository at this point in the history
Add an item to the RCU documentation checklist noting that RCU callbacks
can run in parallel.

Signed-off-by: Paul E. McKenney <[email protected]>
Cc: Steven Rostedt <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
paulmck authored and Linus Torvalds committed Jul 16, 2007
1 parent 4d3b573 commit ef48bd2
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion Documentation/RCU/checklist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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()),
Expand Down

0 comments on commit ef48bd2

Please sign in to comment.