diff options
-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()), |