Commit f511ce14 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

Merge branch 'scftorture.2020.08.24a' into HEAD

scftorture.2020.08.24a: Torture tests for smp_call_function() and friends.
parents cfb2c107 4e88ec4a
Loading
Loading
Loading
Loading
+110 −18
Original line number Diff line number Diff line
@@ -4157,41 +4157,41 @@
			rcu_node tree with an eye towards determining
			why a new grace period has not yet started.

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

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

	rcuperf.gp_exp= [KNL]
	rcuscale.gp_exp= [KNL]
			Measure performance of expedited synchronous
			grace-period primitives.

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

	rcuperf.kfree_rcu_test= [KNL]
	rcuscale.kfree_rcu_test= [KNL]
			Set to measure performance of kfree_rcu() flooding.

	rcuperf.kfree_nthreads= [KNL]
	rcuscale.kfree_nthreads= [KNL]
			The number of threads running loops of kfree_rcu().

	rcuperf.kfree_alloc_num= [KNL]
	rcuscale.kfree_alloc_num= [KNL]
			Number of allocations and frees done in an iteration.

	rcuperf.kfree_loops= [KNL]
			Number of loops doing rcuperf.kfree_alloc_num number
	rcuscale.kfree_loops= [KNL]
			Number of loops doing rcuscale.kfree_alloc_num number
			of allocations and frees.

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

	rcuperf.nwriters= [KNL]
	rcuscale.nwriters= [KNL]
			Set number of RCU writers.  The values operate
			the same as for rcuperf.nreaders.
			the same as for rcuscale.nreaders.
			N, where N is the number of CPUs

	rcuperf.perf_type= [KNL]
	rcuscale.perf_type= [KNL]
			Specify the RCU implementation to test.

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

	rcuperf.verbose= [KNL]
	rcuscale.verbose= [KNL]
			Enable additional printk() statements.

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

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

	scftorture.holdoff= [KNL]
			Number of seconds to hold off before starting
			test.  Defaults to zero for module insertion and
			to 10 seconds for built-in smp_call_function()
			tests.

	scftorture.longwait= [KNL]
			Request ridiculously long waits randomly selected
			up to the chosen limit in seconds.  Zero (the
			default) disables this feature.  Please note
			that requesting even small non-zero numbers of
			seconds can result in RCU CPU stall warnings,
			softlockup complaints, and so on.

	scftorture.nthreads= [KNL]
			Number of kthreads to spawn to invoke the
			smp_call_function() family of functions.
			The default of -1 specifies a number of kthreads
			equal to the number of CPUs.

	scftorture.onoff_holdoff= [KNL]
			Number seconds to wait after the start of the
			test before initiating CPU-hotplug operations.

	scftorture.onoff_interval= [KNL]
			Number seconds to wait between successive
			CPU-hotplug operations.  Specifying zero (which
			is the default) disables CPU-hotplug operations.

	scftorture.shutdown_secs= [KNL]
			The number of seconds following the start of the
			test after which to shut down the system.  The
			default of zero avoids shutting down the system.
			Non-zero values are useful for automated tests.

	scftorture.stat_interval= [KNL]
			The number of seconds between outputting the
			current test statistics to the console.  A value
			of zero disables statistics output.

	scftorture.stutter_cpus= [KNL]
			The number of jiffies to wait between each change
			to the set of CPUs under test.

	scftorture.use_cpus_read_lock= [KNL]
			Use use_cpus_read_lock() instead of the default
			preempt_disable() to disable CPU hotplug
			while invoking one of the smp_call_function*()
			functions.

	scftorture.verbose= [KNL]
			Enable additional printk() statements.

	scftorture.weight_single= [KNL]
			The probability weighting to use for the
			smp_call_function_single() function with a zero
			"wait" parameter.  A value of -1 selects the
			default if all other weights are -1.  However,
			if at least one weight has some other value, a
			value of -1 will instead select a weight of zero.

	scftorture.weight_single_wait= [KNL]
			The probability weighting to use for the
			smp_call_function_single() function with a
			non-zero "wait" parameter.  See weight_single.

	scftorture.weight_many= [KNL]
			The probability weighting to use for the
			smp_call_function_many() function with a zero
			"wait" parameter.  See weight_single.
			Note well that setting a high probability for
			this weighting can place serious IPI load
			on the system.

	scftorture.weight_many_wait= [KNL]
			The probability weighting to use for the
			smp_call_function_many() function with a
			non-zero "wait" parameter.  See weight_single
			and weight_many.

	scftorture.weight_all= [KNL]
			The probability weighting to use for the
			smp_call_function_all() function with a zero
			"wait" parameter.  See weight_single and
			weight_many.

	scftorture.weight_all_wait= [KNL]
			The probability weighting to use for the
			smp_call_function_all() function with a
			non-zero "wait" parameter.  See weight_single
			and weight_many.

	skew_tick=	[KNL] Offset the periodic timer tick per cpu to mitigate
			xtime_lock contention on larger systems, and/or RCU lock
			contention on all systems with CONFIG_MAXSMP set.
+2 −1
Original line number Diff line number Diff line
@@ -17510,8 +17510,9 @@ S: Supported
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
F:	Documentation/RCU/torture.rst
F:	kernel/locking/locktorture.c
F:	kernel/rcu/rcuperf.c
F:	kernel/rcu/rcuscale.c
F:	kernel/rcu/rcutorture.c
F:	kernel/rcu/refscale.c
F:	kernel/torture.c
TOSHIBA ACPI EXTRAS DRIVER
+2 −0
Original line number Diff line number Diff line
@@ -133,6 +133,8 @@ KASAN_SANITIZE_stackleak.o := n
KCSAN_SANITIZE_stackleak.o := n
KCOV_INSTRUMENT_stackleak.o := n

obj-$(CONFIG_SCF_TORTURE_TEST) += scftorture.o

$(obj)/configs.o: $(obj)/config_data.gz

targets += config_data.gz
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ config TORTURE_TEST
	tristate
	default n

config RCU_PERF_TEST
config RCU_SCALE_TEST
	tristate "performance tests for RCU"
	depends on DEBUG_KERNEL
	select TORTURE_TEST
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ obj-y += update.o sync.o
obj-$(CONFIG_TREE_SRCU) += srcutree.o
obj-$(CONFIG_TINY_SRCU) += srcutiny.o
obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
obj-$(CONFIG_RCU_PERF_TEST) += rcuperf.o
obj-$(CONFIG_RCU_SCALE_TEST) += rcuscale.o
obj-$(CONFIG_RCU_REF_SCALE_TEST) += refscale.o
obj-$(CONFIG_TREE_RCU) += tree.o
obj-$(CONFIG_TINY_RCU) += tiny.o
Loading