diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2007-07-16 02:41:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 12:05:47 -0400 |
commit | ef48bd246124ccdef0e1fa5b03b62d69cbf71fa7 (patch) | |
tree | 830af437b3d0bc916a4f8f9928dece6b64200a66 | |
parent | 4d3b573ad9af85b6df104044f6fff05f04349db2 (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>
-rw-r--r-- | Documentation/RCU/checklist.txt | 10 |
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 | ||
225 | 13. SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu()) | 225 | 13. 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 | |||
233 | 14. 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()), |