Skip to content

Commit f511ce1

Browse files
committed
Merge branch 'scftorture.2020.08.24a' into HEAD
scftorture.2020.08.24a: Torture tests for smp_call_function() and friends.
2 parents cfb2c10 + 4e88ec4 commit f511ce1

27 files changed

+982
-210
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 110 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4157,41 +4157,41 @@
41574157
rcu_node tree with an eye towards determining
41584158
why a new grace period has not yet started.
41594159

4160-
rcuperf.gp_async= [KNL]
4160+
rcuscale.gp_async= [KNL]
41614161
Measure performance of asynchronous
41624162
grace-period primitives such as call_rcu().
41634163

4164-
rcuperf.gp_async_max= [KNL]
4164+
rcuscale.gp_async_max= [KNL]
41654165
Specify the maximum number of outstanding
41664166
callbacks per writer thread. When a writer
41674167
thread exceeds this limit, it invokes the
41684168
corresponding flavor of rcu_barrier() to allow
41694169
previously posted callbacks to drain.
41704170

4171-
rcuperf.gp_exp= [KNL]
4171+
rcuscale.gp_exp= [KNL]
41724172
Measure performance of expedited synchronous
41734173
grace-period primitives.
41744174

4175-
rcuperf.holdoff= [KNL]
4175+
rcuscale.holdoff= [KNL]
41764176
Set test-start holdoff period. The purpose of
41774177
this parameter is to delay the start of the
41784178
test until boot completes in order to avoid
41794179
interference.
41804180

4181-
rcuperf.kfree_rcu_test= [KNL]
4181+
rcuscale.kfree_rcu_test= [KNL]
41824182
Set to measure performance of kfree_rcu() flooding.
41834183

4184-
rcuperf.kfree_nthreads= [KNL]
4184+
rcuscale.kfree_nthreads= [KNL]
41854185
The number of threads running loops of kfree_rcu().
41864186

4187-
rcuperf.kfree_alloc_num= [KNL]
4187+
rcuscale.kfree_alloc_num= [KNL]
41884188
Number of allocations and frees done in an iteration.
41894189

4190-
rcuperf.kfree_loops= [KNL]
4191-
Number of loops doing rcuperf.kfree_alloc_num number
4190+
rcuscale.kfree_loops= [KNL]
4191+
Number of loops doing rcuscale.kfree_alloc_num number
41924192
of allocations and frees.
41934193

4194-
rcuperf.nreaders= [KNL]
4194+
rcuscale.nreaders= [KNL]
41954195
Set number of RCU readers. The value -1 selects
41964196
N, where N is the number of CPUs. A value
41974197
"n" less than -1 selects N-n+1, where N is again
@@ -4200,23 +4200,23 @@
42004200
A value of "n" less than or equal to -N selects
42014201
a single reader.
42024202

4203-
rcuperf.nwriters= [KNL]
4203+
rcuscale.nwriters= [KNL]
42044204
Set number of RCU writers. The values operate
4205-
the same as for rcuperf.nreaders.
4205+
the same as for rcuscale.nreaders.
42064206
N, where N is the number of CPUs
42074207

4208-
rcuperf.perf_type= [KNL]
4208+
rcuscale.perf_type= [KNL]
42094209
Specify the RCU implementation to test.
42104210

4211-
rcuperf.shutdown= [KNL]
4211+
rcuscale.shutdown= [KNL]
42124212
Shut the system down after performance tests
42134213
complete. This is useful for hands-off automated
42144214
testing.
42154215

4216-
rcuperf.verbose= [KNL]
4216+
rcuscale.verbose= [KNL]
42174217
Enable additional printk() statements.
42184218

4219-
rcuperf.writer_holdoff= [KNL]
4219+
rcuscale.writer_holdoff= [KNL]
42204220
Write-side holdoff between grace periods,
42214221
in microseconds. The default of zero says
42224222
no holdoff.
@@ -4502,8 +4502,8 @@
45024502
refscale.shutdown= [KNL]
45034503
Shut down the system at the end of the performance
45044504
test. This defaults to 1 (shut it down) when
4505-
rcuperf is built into the kernel and to 0 (leave
4506-
it running) when rcuperf is built as a module.
4505+
refscale is built into the kernel and to 0 (leave
4506+
it running) when refscale is built as a module.
45074507

45084508
refscale.verbose= [KNL]
45094509
Enable additional printk() statements.
@@ -4649,6 +4649,98 @@
46494649
Format: integer between 0 and 10
46504650
Default is 0.
46514651

4652+
scftorture.holdoff= [KNL]
4653+
Number of seconds to hold off before starting
4654+
test. Defaults to zero for module insertion and
4655+
to 10 seconds for built-in smp_call_function()
4656+
tests.
4657+
4658+
scftorture.longwait= [KNL]
4659+
Request ridiculously long waits randomly selected
4660+
up to the chosen limit in seconds. Zero (the
4661+
default) disables this feature. Please note
4662+
that requesting even small non-zero numbers of
4663+
seconds can result in RCU CPU stall warnings,
4664+
softlockup complaints, and so on.
4665+
4666+
scftorture.nthreads= [KNL]
4667+
Number of kthreads to spawn to invoke the
4668+
smp_call_function() family of functions.
4669+
The default of -1 specifies a number of kthreads
4670+
equal to the number of CPUs.
4671+
4672+
scftorture.onoff_holdoff= [KNL]
4673+
Number seconds to wait after the start of the
4674+
test before initiating CPU-hotplug operations.
4675+
4676+
scftorture.onoff_interval= [KNL]
4677+
Number seconds to wait between successive
4678+
CPU-hotplug operations. Specifying zero (which
4679+
is the default) disables CPU-hotplug operations.
4680+
4681+
scftorture.shutdown_secs= [KNL]
4682+
The number of seconds following the start of the
4683+
test after which to shut down the system. The
4684+
default of zero avoids shutting down the system.
4685+
Non-zero values are useful for automated tests.
4686+
4687+
scftorture.stat_interval= [KNL]
4688+
The number of seconds between outputting the
4689+
current test statistics to the console. A value
4690+
of zero disables statistics output.
4691+
4692+
scftorture.stutter_cpus= [KNL]
4693+
The number of jiffies to wait between each change
4694+
to the set of CPUs under test.
4695+
4696+
scftorture.use_cpus_read_lock= [KNL]
4697+
Use use_cpus_read_lock() instead of the default
4698+
preempt_disable() to disable CPU hotplug
4699+
while invoking one of the smp_call_function*()
4700+
functions.
4701+
4702+
scftorture.verbose= [KNL]
4703+
Enable additional printk() statements.
4704+
4705+
scftorture.weight_single= [KNL]
4706+
The probability weighting to use for the
4707+
smp_call_function_single() function with a zero
4708+
"wait" parameter. A value of -1 selects the
4709+
default if all other weights are -1. However,
4710+
if at least one weight has some other value, a
4711+
value of -1 will instead select a weight of zero.
4712+
4713+
scftorture.weight_single_wait= [KNL]
4714+
The probability weighting to use for the
4715+
smp_call_function_single() function with a
4716+
non-zero "wait" parameter. See weight_single.
4717+
4718+
scftorture.weight_many= [KNL]
4719+
The probability weighting to use for the
4720+
smp_call_function_many() function with a zero
4721+
"wait" parameter. See weight_single.
4722+
Note well that setting a high probability for
4723+
this weighting can place serious IPI load
4724+
on the system.
4725+
4726+
scftorture.weight_many_wait= [KNL]
4727+
The probability weighting to use for the
4728+
smp_call_function_many() function with a
4729+
non-zero "wait" parameter. See weight_single
4730+
and weight_many.
4731+
4732+
scftorture.weight_all= [KNL]
4733+
The probability weighting to use for the
4734+
smp_call_function_all() function with a zero
4735+
"wait" parameter. See weight_single and
4736+
weight_many.
4737+
4738+
scftorture.weight_all_wait= [KNL]
4739+
The probability weighting to use for the
4740+
smp_call_function_all() function with a
4741+
non-zero "wait" parameter. See weight_single
4742+
and weight_many.
4743+
46524744
skew_tick= [KNL] Offset the periodic timer tick per cpu to mitigate
46534745
xtime_lock contention on larger systems, and/or RCU lock
46544746
contention on all systems with CONFIG_MAXSMP set.

MAINTAINERS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17510,8 +17510,9 @@ S: Supported
1751017510
T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
1751117511
F: Documentation/RCU/torture.rst
1751217512
F: kernel/locking/locktorture.c
17513-
F: kernel/rcu/rcuperf.c
17513+
F: kernel/rcu/rcuscale.c
1751417514
F: kernel/rcu/rcutorture.c
17515+
F: kernel/rcu/refscale.c
1751517516
F: kernel/torture.c
1751617517

1751717518
TOSHIBA ACPI EXTRAS DRIVER

kernel/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ KASAN_SANITIZE_stackleak.o := n
133133
KCSAN_SANITIZE_stackleak.o := n
134134
KCOV_INSTRUMENT_stackleak.o := n
135135

136+
obj-$(CONFIG_SCF_TORTURE_TEST) += scftorture.o
137+
136138
$(obj)/configs.o: $(obj)/config_data.gz
137139

138140
targets += config_data.gz

kernel/rcu/Kconfig.debug

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ config TORTURE_TEST
2323
tristate
2424
default n
2525

26-
config RCU_PERF_TEST
26+
config RCU_SCALE_TEST
2727
tristate "performance tests for RCU"
2828
depends on DEBUG_KERNEL
2929
select TORTURE_TEST

kernel/rcu/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ obj-y += update.o sync.o
1111
obj-$(CONFIG_TREE_SRCU) += srcutree.o
1212
obj-$(CONFIG_TINY_SRCU) += srcutiny.o
1313
obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
14-
obj-$(CONFIG_RCU_PERF_TEST) += rcuperf.o
14+
obj-$(CONFIG_RCU_SCALE_TEST) += rcuscale.o
1515
obj-$(CONFIG_RCU_REF_SCALE_TEST) += refscale.o
1616
obj-$(CONFIG_TREE_RCU) += tree.o
1717
obj-$(CONFIG_TINY_RCU) += tiny.o

0 commit comments

Comments
 (0)