Loading Documentation/admin-guide/kernel-parameters.txt +110 −18 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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. Loading Loading @@ -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. Loading Loading @@ -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. Loading MAINTAINERS +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading kernel/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading kernel/rcu/Kconfig.debug +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading kernel/rcu/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
Documentation/admin-guide/kernel-parameters.txt +110 −18 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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. Loading Loading @@ -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. Loading Loading @@ -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. Loading
MAINTAINERS +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
kernel/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
kernel/rcu/Kconfig.debug +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
kernel/rcu/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -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