diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2012-02-20 20:51:45 -0500 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2012-04-30 13:48:18 -0400 |
commit | fae4b54f28f034d228fa3bfc98858c698b64e89c (patch) | |
tree | 1259258956ba9d30eba6360083214e145ec19813 /Documentation/RCU | |
parent | 37e377d2823e03528cb64f435d7c0e30b1c668eb (diff) |
rcu: Introduce rcutorture testing for rcu_barrier()
Although rcutorture does invoke rcu_barrier() and friends, it cannot
really be called a torture test given that it invokes them only once
at the end of the test. This commit therefore introduces heavy-duty
rcutorture testing for rcu_barrier(), which may be carried out
concurrently with normal rcutorture testing.
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r-- | Documentation/RCU/torture.txt | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/RCU/torture.txt b/Documentation/RCU/torture.txt index 375d3fb71437..4ddf3913fd8c 100644 --- a/Documentation/RCU/torture.txt +++ b/Documentation/RCU/torture.txt | |||
@@ -47,6 +47,16 @@ irqreader Says to invoke RCU readers from irq level. This is currently | |||
47 | permit this. (Or, more accurately, variants of RCU that do | 47 | permit this. (Or, more accurately, variants of RCU that do |
48 | -not- permit this know to ignore this variable.) | 48 | -not- permit this know to ignore this variable.) |
49 | 49 | ||
50 | n_barrier_cbs If this is nonzero, RCU barrier testing will be conducted, | ||
51 | in which case n_barrier_cbs specifies the number of | ||
52 | RCU callbacks (and corresponding kthreads) to use for | ||
53 | this testing. The value cannot be negative. If you | ||
54 | specify this to be non-zero when torture_type indicates a | ||
55 | synchronous RCU implementation (one for which a member of | ||
56 | the synchronize_rcu() rather than the call_rcu() family is | ||
57 | used -- see the documentation for torture_type below), an | ||
58 | error will be reported and no testing will be carried out. | ||
59 | |||
50 | nfakewriters This is the number of RCU fake writer threads to run. Fake | 60 | nfakewriters This is the number of RCU fake writer threads to run. Fake |
51 | writer threads repeatedly use the synchronous "wait for | 61 | writer threads repeatedly use the synchronous "wait for |
52 | current readers" function of the interface selected by | 62 | current readers" function of the interface selected by |
@@ -188,7 +198,7 @@ OUTPUT | |||
188 | The statistics output is as follows: | 198 | The statistics output is as follows: |
189 | 199 | ||
190 | rcu-torture:--- Start of test: nreaders=16 nfakewriters=4 stat_interval=30 verbose=0 test_no_idle_hz=1 shuffle_interval=3 stutter=5 irqreader=1 fqs_duration=0 fqs_holdoff=0 fqs_stutter=3 test_boost=1/0 test_boost_interval=7 test_boost_duration=4 | 200 | rcu-torture:--- Start of test: nreaders=16 nfakewriters=4 stat_interval=30 verbose=0 test_no_idle_hz=1 shuffle_interval=3 stutter=5 irqreader=1 fqs_duration=0 fqs_holdoff=0 fqs_stutter=3 test_boost=1/0 test_boost_interval=7 test_boost_duration=4 |
191 | rcu-torture: rtc: (null) ver: 155441 tfle: 0 rta: 155441 rtaf: 8884 rtf: 155440 rtmbe: 0 rtbke: 0 rtbre: 0 rtbf: 0 rtb: 0 nt: 3055767 | 201 | rcu-torture: rtc: (null) ver: 155441 tfle: 0 rta: 155441 rtaf: 8884 rtf: 155440 rtmbe: 0 rtbe: 0 rtbke: 0 rtbre: 0 rtbf: 0 rtb: 0 nt: 3055767 |
192 | rcu-torture: Reader Pipe: 727860534 34213 0 0 0 0 0 0 0 0 0 | 202 | rcu-torture: Reader Pipe: 727860534 34213 0 0 0 0 0 0 0 0 0 |
193 | rcu-torture: Reader Batch: 727877838 17003 0 0 0 0 0 0 0 0 0 | 203 | rcu-torture: Reader Batch: 727877838 17003 0 0 0 0 0 0 0 0 0 |
194 | rcu-torture: Free-Block Circulation: 155440 155440 155440 155440 155440 155440 155440 155440 155440 155440 0 | 204 | rcu-torture: Free-Block Circulation: 155440 155440 155440 155440 155440 155440 155440 155440 155440 155440 0 |
@@ -230,6 +240,9 @@ o "rtmbe": A non-zero value indicates that rcutorture believes that | |||
230 | rcu_assign_pointer() and rcu_dereference() are not working | 240 | rcu_assign_pointer() and rcu_dereference() are not working |
231 | correctly. This value should be zero. | 241 | correctly. This value should be zero. |
232 | 242 | ||
243 | o "rtbe": A non-zero value indicates that one of the rcu_barrier() | ||
244 | family of functions is not working correctly. | ||
245 | |||
233 | o "rtbke": rcutorture was unable to create the real-time kthreads | 246 | o "rtbke": rcutorture was unable to create the real-time kthreads |
234 | used to force RCU priority inversion. This value should be zero. | 247 | used to force RCU priority inversion. This value should be zero. |
235 | 248 | ||