rcutorture: Allow specifying per-scenario stat_interval

The rcutorture test suite makes double use of the rcutorture.stat_interval
module parameter.  As its name suggests, it controls the frequency
of statistics printing, but it also controls the rcu_torture_writer()
stall timeout.  The current setting of 15 seconds works surprisingly well.
However, given that the RCU tasks stall-warning timeout is ten -minutes-,
15 seconds is too short for TASKS02, which runs a non-preemptible kernel
on a single CPU.

This commit therefore adds checks for per-scenario specification of the
rcutorture.stat_interval module parameter.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
Paul E. McKenney 2022-03-18 08:10:18 -07:00
parent 3831fc02f4
commit 58524e0fed
2 changed files with 15 additions and 2 deletions

View File

@ -1 +1,2 @@
rcutorture.torture_type=tasks rcutorture.torture_type=tasks
rcutorture.stat_interval=60

View File

@ -9,7 +9,7 @@
# rcutorture_param_n_barrier_cbs bootparam-string # rcutorture_param_n_barrier_cbs bootparam-string
# #
# Adds n_barrier_cbs rcutorture module parameter to kernels having it. # Adds n_barrier_cbs rcutorture module parameter if not already specified.
rcutorture_param_n_barrier_cbs () { rcutorture_param_n_barrier_cbs () {
if echo $1 | grep -q "rcutorture\.n_barrier_cbs" if echo $1 | grep -q "rcutorture\.n_barrier_cbs"
then then
@ -30,13 +30,25 @@ rcutorture_param_onoff () {
fi fi
} }
# rcutorture_param_stat_interval bootparam-string
#
# Adds stat_interval rcutorture module parameter if not already specified.
rcutorture_param_stat_interval () {
if echo $1 | grep -q "rcutorture\.stat_interval"
then
:
else
echo rcutorture.stat_interval=15
fi
}
# per_version_boot_params bootparam-string config-file seconds # per_version_boot_params bootparam-string config-file seconds
# #
# Adds per-version torture-module parameters to kernels supporting them. # Adds per-version torture-module parameters to kernels supporting them.
per_version_boot_params () { per_version_boot_params () {
echo $1 `rcutorture_param_onoff "$1" "$2"` \ echo $1 `rcutorture_param_onoff "$1" "$2"` \
`rcutorture_param_n_barrier_cbs "$1"` \ `rcutorture_param_n_barrier_cbs "$1"` \
rcutorture.stat_interval=15 \ `rcutorture_param_stat_interval "$1"` \
rcutorture.shutdown_secs=$3 \ rcutorture.shutdown_secs=$3 \
rcutorture.test_no_idle_hz=1 \ rcutorture.test_no_idle_hz=1 \
rcutorture.verbose=1 rcutorture.verbose=1