summaryrefslogtreecommitdiff
path: root/Documentation/RCU/rcubarrier.txt
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2013-05-28 10:09:22 +0200
committerJiri Kosina <jkosina@suse.cz>2013-05-28 10:09:29 +0200
commit864bfb25b57a6766ea689befa5cf09a4353281ce (patch)
tree478941ca6e76b8d77b71f5827a3ce751c46a72b5 /Documentation/RCU/rcubarrier.txt
parent071361d3473ebb8142907470ff12d59c59f6be72 (diff)
parent49717cb40410fe4b563968680ff7c513967504c6 (diff)
Merge branch 'master' into for-next
Merge with 49717cb ("kthread: Document ways of reducing OS jitter due to per-CPU kthreads") to be able to apply fixup patch on top of it. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'Documentation/RCU/rcubarrier.txt')
-rw-r--r--Documentation/RCU/rcubarrier.txt15
1 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/RCU/rcubarrier.txt b/Documentation/RCU/rcubarrier.txt
index 38428c125135..2e319d1b9ef2 100644
--- a/Documentation/RCU/rcubarrier.txt
+++ b/Documentation/RCU/rcubarrier.txt
@@ -79,7 +79,20 @@ complete. Pseudo-code using rcu_barrier() is as follows:
2. Execute rcu_barrier().
3. Allow the module to be unloaded.
-The rcutorture module makes use of rcu_barrier in its exit function
+There are also rcu_barrier_bh(), rcu_barrier_sched(), and srcu_barrier()
+functions for the other flavors of RCU, and you of course must match
+the flavor of rcu_barrier() with that of call_rcu(). If your module
+uses multiple flavors of call_rcu(), then it must also use multiple
+flavors of rcu_barrier() when unloading that module. For example, if
+it uses call_rcu_bh(), call_srcu() on srcu_struct_1, and call_srcu() on
+srcu_struct_2(), then the following three lines of code will be required
+when unloading:
+
+ 1 rcu_barrier_bh();
+ 2 srcu_barrier(&srcu_struct_1);
+ 3 srcu_barrier(&srcu_struct_2);
+
+The rcutorture module makes use of rcu_barrier() in its exit function
as follows:
1 static void