aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/RCU
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2007-07-16 02:41:03 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 12:05:47 -0400
commitef48bd246124ccdef0e1fa5b03b62d69cbf71fa7 (patch)
tree830af437b3d0bc916a4f8f9928dece6b64200a66 /Documentation/RCU
parent4d3b573ad9af85b6df104044f6fff05f04349db2 (diff)
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: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r--Documentation/RCU/checklist.txt10
1 files changed, 9 insertions, 1 deletions
diff --git a/Documentation/RCU/checklist.txt b/Documentation/RCU/checklist.txt
index f4dffadbcb00..42b01bc2e1b4 100644
--- a/Documentation/RCU/checklist.txt
+++ b/Documentation/RCU/checklist.txt
@@ -222,7 +222,15 @@ over a rather long period of time, but improvements are always welcome!
222 deadlock as soon as the RCU callback happens to interrupt that 222 deadlock as soon as the RCU callback happens to interrupt that
223 acquisition's critical section. 223 acquisition's critical section.
224 224
22513. SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu()) 22513. RCU callbacks can be and are executed in parallel. In many cases,
226 the callback code simply wrappers around kfree(), so that this
227 is not an issue (or, more accurately, to the extent that it is
228 an issue, the memory-allocator locking handles it). However,
229 if the callbacks do manipulate a shared data structure, they
230 must use whatever locking or other synchronization is required
231 to safely access and/or modify that data structure.
232
23314. SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu())
226 may only be invoked from process context. Unlike other forms of 234 may only be invoked from process context. Unlike other forms of
227 RCU, it -is- permissible to block in an SRCU read-side critical 235 RCU, it -is- permissible to block in an SRCU read-side critical
228 section (demarked by srcu_read_lock() and srcu_read_unlock()), 236 section (demarked by srcu_read_lock() and srcu_read_unlock()),