Commit 4e88ec4a authored by Paul E. McKenney's avatar Paul E. McKenney

rcuperf: Change rcuperf to rcuscale

This commit further avoids conflation of rcuperf with the kernel's perf
feature by renaming kernel/rcu/rcuperf.c to kernel/rcu/rcuscale.c, and
also by similarly renaming the functions and variables inside this file.
This has the side effect of changing the names of the kernel boot
parameters, so kernel-parameters.txt and ver_functions.sh are also
updated.  The rcutorture --torture type was also updated from rcuperf
to rcuscale.

[ paulmck: Fix bugs located by Stephen Rothwell. ]
Reported-by: default avatarIngo Molnar <mingo@kernel.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 65bd77f5
...@@ -4157,41 +4157,41 @@ ...@@ -4157,41 +4157,41 @@
rcu_node tree with an eye towards determining rcu_node tree with an eye towards determining
why a new grace period has not yet started. why a new grace period has not yet started.
rcuperf.gp_async= [KNL] rcuscale.gp_async= [KNL]
Measure performance of asynchronous Measure performance of asynchronous
grace-period primitives such as call_rcu(). grace-period primitives such as call_rcu().
rcuperf.gp_async_max= [KNL] rcuscale.gp_async_max= [KNL]
Specify the maximum number of outstanding Specify the maximum number of outstanding
callbacks per writer thread. When a writer callbacks per writer thread. When a writer
thread exceeds this limit, it invokes the thread exceeds this limit, it invokes the
corresponding flavor of rcu_barrier() to allow corresponding flavor of rcu_barrier() to allow
previously posted callbacks to drain. previously posted callbacks to drain.
rcuperf.gp_exp= [KNL] rcuscale.gp_exp= [KNL]
Measure performance of expedited synchronous Measure performance of expedited synchronous
grace-period primitives. grace-period primitives.
rcuperf.holdoff= [KNL] rcuscale.holdoff= [KNL]
Set test-start holdoff period. The purpose of Set test-start holdoff period. The purpose of
this parameter is to delay the start of the this parameter is to delay the start of the
test until boot completes in order to avoid test until boot completes in order to avoid
interference. interference.
rcuperf.kfree_rcu_test= [KNL] rcuscale.kfree_rcu_test= [KNL]
Set to measure performance of kfree_rcu() flooding. 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(). 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. Number of allocations and frees done in an iteration.
rcuperf.kfree_loops= [KNL] rcuscale.kfree_loops= [KNL]
Number of loops doing rcuperf.kfree_alloc_num number Number of loops doing rcuscale.kfree_alloc_num number
of allocations and frees. of allocations and frees.
rcuperf.nreaders= [KNL] rcuscale.nreaders= [KNL]
Set number of RCU readers. The value -1 selects Set number of RCU readers. The value -1 selects
N, where N is the number of CPUs. A value N, where N is the number of CPUs. A value
"n" less than -1 selects N-n+1, where N is again "n" less than -1 selects N-n+1, where N is again
...@@ -4200,23 +4200,23 @@ ...@@ -4200,23 +4200,23 @@
A value of "n" less than or equal to -N selects A value of "n" less than or equal to -N selects
a single reader. a single reader.
rcuperf.nwriters= [KNL] rcuscale.nwriters= [KNL]
Set number of RCU writers. The values operate 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 N, where N is the number of CPUs
rcuperf.perf_type= [KNL] rcuscale.perf_type= [KNL]
Specify the RCU implementation to test. Specify the RCU implementation to test.
rcuperf.shutdown= [KNL] rcuscale.shutdown= [KNL]
Shut the system down after performance tests Shut the system down after performance tests
complete. This is useful for hands-off automated complete. This is useful for hands-off automated
testing. testing.
rcuperf.verbose= [KNL] rcuscale.verbose= [KNL]
Enable additional printk() statements. Enable additional printk() statements.
rcuperf.writer_holdoff= [KNL] rcuscale.writer_holdoff= [KNL]
Write-side holdoff between grace periods, Write-side holdoff between grace periods,
in microseconds. The default of zero says in microseconds. The default of zero says
no holdoff. no holdoff.
...@@ -4490,8 +4490,8 @@ ...@@ -4490,8 +4490,8 @@
refscale.shutdown= [KNL] refscale.shutdown= [KNL]
Shut down the system at the end of the performance Shut down the system at the end of the performance
test. This defaults to 1 (shut it down) when test. This defaults to 1 (shut it down) when
rcuperf is built into the kernel and to 0 (leave refscale is built into the kernel and to 0 (leave
it running) when rcuperf is built as a module. it running) when refscale is built as a module.
refscale.verbose= [KNL] refscale.verbose= [KNL]
Enable additional printk() statements. Enable additional printk() statements.
......
...@@ -17510,8 +17510,9 @@ S: Supported ...@@ -17510,8 +17510,9 @@ S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
F: Documentation/RCU/torture.rst F: Documentation/RCU/torture.rst
F: kernel/locking/locktorture.c F: kernel/locking/locktorture.c
F: kernel/rcu/rcuperf.c F: kernel/rcu/rcuscale.c
F: kernel/rcu/rcutorture.c F: kernel/rcu/rcutorture.c
F: kernel/rcu/refscale.c
F: kernel/torture.c F: kernel/torture.c
TOSHIBA ACPI EXTRAS DRIVER TOSHIBA ACPI EXTRAS DRIVER
......
...@@ -23,7 +23,7 @@ config TORTURE_TEST ...@@ -23,7 +23,7 @@ config TORTURE_TEST
tristate tristate
default n default n
config RCU_PERF_TEST config RCU_SCALE_TEST
tristate "performance tests for RCU" tristate "performance tests for RCU"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL
select TORTURE_TEST select TORTURE_TEST
......
...@@ -11,7 +11,7 @@ obj-y += update.o sync.o ...@@ -11,7 +11,7 @@ obj-y += update.o sync.o
obj-$(CONFIG_TREE_SRCU) += srcutree.o obj-$(CONFIG_TREE_SRCU) += srcutree.o
obj-$(CONFIG_TINY_SRCU) += srcutiny.o obj-$(CONFIG_TINY_SRCU) += srcutiny.o
obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.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_RCU_REF_SCALE_TEST) += refscale.o
obj-$(CONFIG_TREE_RCU) += tree.o obj-$(CONFIG_TREE_RCU) += tree.o
obj-$(CONFIG_TINY_RCU) += tiny.o obj-$(CONFIG_TINY_RCU) += tiny.o
......
#!/bin/bash #!/bin/bash
# SPDX-License-Identifier: GPL-2.0+ # SPDX-License-Identifier: GPL-2.0+
# #
# Analyze a given results directory for rcuperf performance measurements, # Analyze a given results directory for rcuscale performance measurements,
# looking for ftrace data. Exits with 0 if data was found, analyzed, and # looking for ftrace data. Exits with 0 if data was found, analyzed, and
# printed. Intended to be invoked from kvm-recheck-rcuperf.sh after # printed. Intended to be invoked from kvm-recheck-rcuscale.sh after
# argument checking. # argument checking.
# #
# Usage: kvm-recheck-rcuperf-ftrace.sh resdir # Usage: kvm-recheck-rcuscale-ftrace.sh resdir
# #
# Copyright (C) IBM Corporation, 2016 # Copyright (C) IBM Corporation, 2016
# #
......
#!/bin/bash #!/bin/bash
# SPDX-License-Identifier: GPL-2.0+ # SPDX-License-Identifier: GPL-2.0+
# #
# Analyze a given results directory for rcuperf performance measurements. # Analyze a given results directory for rcuscale scalability measurements.
# #
# Usage: kvm-recheck-rcuperf.sh resdir # Usage: kvm-recheck-rcuscale.sh resdir
# #
# Copyright (C) IBM Corporation, 2016 # Copyright (C) IBM Corporation, 2016
# #
...@@ -20,7 +20,7 @@ fi ...@@ -20,7 +20,7 @@ fi
PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH
. functions.sh . functions.sh
if kvm-recheck-rcuperf-ftrace.sh $i if kvm-recheck-rcuscale-ftrace.sh $i
then then
# ftrace data was successfully analyzed, call it good! # ftrace data was successfully analyzed, call it good!
exit 0 exit 0
...@@ -30,12 +30,12 @@ configfile=`echo $i | sed -e 's/^.*\///'` ...@@ -30,12 +30,12 @@ configfile=`echo $i | sed -e 's/^.*\///'`
sed -e 's/^\[[^]]*]//' < $i/console.log | sed -e 's/^\[[^]]*]//' < $i/console.log |
awk ' awk '
/-perf: .* gps: .* batches:/ { /-scale: .* gps: .* batches:/ {
ngps = $9; ngps = $9;
nbatches = $11; nbatches = $11;
} }
/-perf: .*writer-duration/ { /-scale: .*writer-duration/ {
gptimes[++n] = $5 / 1000.; gptimes[++n] = $5 / 1000.;
sum += $5 / 1000.; sum += $5 / 1000.;
} }
...@@ -43,7 +43,7 @@ awk ' ...@@ -43,7 +43,7 @@ awk '
END { END {
newNR = asort(gptimes); newNR = asort(gptimes);
if (newNR <= 0) { if (newNR <= 0) {
print "No rcuperf records found???" print "No rcuscale records found???"
exit; exit;
} }
pct50 = int(newNR * 50 / 100); pct50 = int(newNR * 50 / 100);
...@@ -79,5 +79,5 @@ END { ...@@ -79,5 +79,5 @@ END {
print "99th percentile grace-period duration: " gptimes[pct99]; print "99th percentile grace-period duration: " gptimes[pct99];
print "Maximum grace-period duration: " gptimes[newNR]; print "Maximum grace-period duration: " gptimes[newNR];
print "Grace periods: " ngps + 0 " Batches: " nbatches + 0 " Ratio: " ngps / nbatches; print "Grace periods: " ngps + 0 " Batches: " nbatches + 0 " Ratio: " ngps / nbatches;
print "Computed from rcuperf printk output."; print "Computed from rcuscale printk output.";
}' }'
...@@ -65,7 +65,7 @@ usage () { ...@@ -65,7 +65,7 @@ usage () {
echo " --qemu-args qemu-arguments" echo " --qemu-args qemu-arguments"
echo " --qemu-cmd qemu-system-..." echo " --qemu-cmd qemu-system-..."
echo " --results absolute-pathname" echo " --results absolute-pathname"
echo " --torture rcu" echo " --torture lock|rcu|rcuscale|refscale|scf"
echo " --trust-make" echo " --trust-make"
exit 1 exit 1
} }
...@@ -184,13 +184,13 @@ do ...@@ -184,13 +184,13 @@ do
shift shift
;; ;;
--torture) --torture)
checkarg --torture "(suite name)" "$#" "$2" '^\(lock\|rcu\|rcuperf\|refscale\|scf\)$' '^--' checkarg --torture "(suite name)" "$#" "$2" '^\(lock\|rcu\|rcuscale\|refscale\|scf\)$' '^--'
TORTURE_SUITE=$2 TORTURE_SUITE=$2
shift shift
if test "$TORTURE_SUITE" = rcuperf || test "$TORTURE_SUITE" = refscale if test "$TORTURE_SUITE" = rcuscale || test "$TORTURE_SUITE" = refscale
then then
# If you really want jitter for refscale or # If you really want jitter for refscale or
# rcuperf, specify it after specifying the rcuperf # rcuscale, specify it after specifying the rcuscale
# or the refscale. (But why jitter in these cases?) # or the refscale. (But why jitter in these cases?)
jitter=0 jitter=0
fi fi
......
...@@ -33,8 +33,8 @@ then ...@@ -33,8 +33,8 @@ then
fi fi
cat /dev/null > $file.diags cat /dev/null > $file.diags
# Check for proper termination, except for rcuperf and refscale. # Check for proper termination, except for rcuscale and refscale.
if test "$TORTURE_SUITE" != rcuperf && test "$TORTURE_SUITE" != refscale if test "$TORTURE_SUITE" != rcuscale && test "$TORTURE_SUITE" != refscale
then then
# check for abject failure # check for abject failure
......
...@@ -11,6 +11,6 @@ ...@@ -11,6 +11,6 @@
# #
# 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 rcuperf.shutdown=1 \ echo $1 rcuscale.shutdown=1 \
rcuperf.verbose=1 rcuscale.verbose=1
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment