aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/RCU
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2008-06-25 15:24:52 -0400
committerIngo Molnar <mingo@elte.hu>2008-06-26 03:24:33 -0400
commit0729fbf3bc70870370b4f43d652f05a468dc68b8 (patch)
tree92557b04b368fac084f59d8397c32c5461ac26fd /Documentation/RCU
parent9a13150109fb418c50fa400c012f90d0ce6f67c3 (diff)
rcu: make rcutorture even more vicious: invoke RCU readers from irq handlers (timers)
This patch allows torturing RCU from irq handlers (timers, in this case). A new module parameter irqreader enables such additional torturing, and is enabled by default. Variants of RCU that do not tolerate readers being called from irq handlers (e.g., SRCU) ignore irqreader. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: josh@freedesktop.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: dino@in.ibm.com Cc: akpm@linux-foundation.org Cc: torvalds@linux-foundation.org Cc: vegard.nossum@gmail.com Cc: adobriyan@gmail.com Cc: oleg@tv-sign.ru Cc: bunk@kernel.org Cc: rjw@sisk.pl Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r--Documentation/RCU/torture.txt23
1 files changed, 14 insertions, 9 deletions
diff --git a/Documentation/RCU/torture.txt b/Documentation/RCU/torture.txt
index 516527d4bc55..a342b6e1cc10 100644
--- a/Documentation/RCU/torture.txt
+++ b/Documentation/RCU/torture.txt
@@ -30,10 +30,10 @@ MODULE PARAMETERS
30 30
31This module has the following parameters: 31This module has the following parameters:
32 32
33nreaders This is the number of RCU reading threads supported. 33irqreaders Says to invoke RCU readers from irq level. This is currently
34 The default is twice the number of CPUs. Why twice? 34 done via timers. Defaults to "1" for variants of RCU that
35 To properly exercise RCU implementations with preemptible 35 permit this. (Or, more accurately, variants of RCU that do
36 read-side critical sections. 36 -not- permit this know to ignore this variable.)
37 37
38nfakewriters This is the number of RCU fake writer threads to run. Fake 38nfakewriters This is the number of RCU fake writer threads to run. Fake
39 writer threads repeatedly use the synchronous "wait for 39 writer threads repeatedly use the synchronous "wait for
@@ -44,6 +44,16 @@ nfakewriters This is the number of RCU fake writer threads to run. Fake
44 to trigger special cases caused by multiple writers, such as 44 to trigger special cases caused by multiple writers, such as
45 the synchronize_srcu() early return optimization. 45 the synchronize_srcu() early return optimization.
46 46
47nreaders This is the number of RCU reading threads supported.
48 The default is twice the number of CPUs. Why twice?
49 To properly exercise RCU implementations with preemptible
50 read-side critical sections.
51
52shuffle_interval
53 The number of seconds to keep the test threads affinitied
54 to a particular subset of the CPUs, defaults to 3 seconds.
55 Used in conjunction with test_no_idle_hz.
56
47stat_interval The number of seconds between output of torture 57stat_interval The number of seconds between output of torture
48 statistics (via printk()). Regardless of the interval, 58 statistics (via printk()). Regardless of the interval,
49 statistics are printed when the module is unloaded. 59 statistics are printed when the module is unloaded.
@@ -51,11 +61,6 @@ stat_interval The number of seconds between output of torture
51 be printed -only- when the module is unloaded, and this 61 be printed -only- when the module is unloaded, and this
52 is the default. 62 is the default.
53 63
54shuffle_interval
55 The number of seconds to keep the test threads affinitied
56 to a particular subset of the CPUs, defaults to 3 seconds.
57 Used in conjunction with test_no_idle_hz.
58
59stutter The length of time to run the test before pausing for this 64stutter The length of time to run the test before pausing for this
60 same period of time. Defaults to "stutter=5", so as 65 same period of time. Defaults to "stutter=5", so as
61 to run and pause for (roughly) five-second intervals. 66 to run and pause for (roughly) five-second intervals.