The following commit has been merged into the core/rcu branch of tip: Commit-ID: f71d8311ec278525508dac211de700b2b682a15f Gitweb: https://git.kernel.org/tip/f71d8311ec278525508dac211de700b2b682a15f Author: Paul E. McKenney <paulmck@xxxxxxxxxx> AuthorDate: Wed, 17 Jun 2020 12:06:47 -07:00 Committer: Paul E. McKenney <paulmck@xxxxxxxxxx> CommitterDate: Mon, 29 Jun 2020 12:00:46 -07:00 refscale: Change --torture type from refperf to refscale This commit renames the rcutorture config/refperf to config/refscale to further avoid conflation with the Linux kernel's perf feature. Reported-by: Ingo Molnar <mingo@xxxxxxxxxx> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx> --- tools/testing/selftests/rcutorture/bin/kvm-recheck-refperf.sh | 71 +---------------------------------------------------------------------- tools/testing/selftests/rcutorture/bin/kvm-recheck-refscale.sh | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- tools/testing/selftests/rcutorture/bin/kvm.sh | 8 ++++---- tools/testing/selftests/rcutorture/bin/parse-console.sh | 4 ++-- tools/testing/selftests/rcutorture/configs/refperf/CFLIST | 2 +-- tools/testing/selftests/rcutorture/configs/refperf/CFcommon | 2 +-- tools/testing/selftests/rcutorture/configs/refperf/NOPREEMPT | 18 +------------------ tools/testing/selftests/rcutorture/configs/refperf/PREEMPT | 18 +------------------ tools/testing/selftests/rcutorture/configs/refperf/ver_functions.sh | 16 +---------------- tools/testing/selftests/rcutorture/configs/refscale/CFLIST | 2 ++- tools/testing/selftests/rcutorture/configs/refscale/CFcommon | 2 ++- tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT | 18 ++++++++++++++++++- tools/testing/selftests/rcutorture/configs/refscale/PREEMPT | 18 ++++++++++++++++++- tools/testing/selftests/rcutorture/configs/refscale/ver_functions.sh | 16 ++++++++++++++++- 14 files changed, 133 insertions(+), 133 deletions(-) delete mode 100755 tools/testing/selftests/rcutorture/bin/kvm-recheck-refperf.sh create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-recheck-refscale.sh delete mode 100644 tools/testing/selftests/rcutorture/configs/refperf/CFLIST delete mode 100644 tools/testing/selftests/rcutorture/configs/refperf/CFcommon delete mode 100644 tools/testing/selftests/rcutorture/configs/refperf/NOPREEMPT delete mode 100644 tools/testing/selftests/rcutorture/configs/refperf/PREEMPT delete mode 100644 tools/testing/selftests/rcutorture/configs/refperf/ver_functions.sh create mode 100644 tools/testing/selftests/rcutorture/configs/refscale/CFLIST create mode 100644 tools/testing/selftests/rcutorture/configs/refscale/CFcommon create mode 100644 tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT create mode 100644 tools/testing/selftests/rcutorture/configs/refscale/PREEMPT create mode 100644 tools/testing/selftests/rcutorture/configs/refscale/ver_functions.sh diff --git a/tools/testing/selftests/rcutorture/bin/kvm-recheck-refperf.sh b/tools/testing/selftests/rcutorture/bin/kvm-recheck-refperf.sh deleted file mode 100755 index 0e29cfd..0000000 --- a/tools/testing/selftests/rcutorture/bin/kvm-recheck-refperf.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: GPL-2.0+ -# -# Analyze a given results directory for refperf performance measurements. -# -# Usage: kvm-recheck-refperf.sh resdir -# -# Copyright (C) IBM Corporation, 2016 -# -# Authors: Paul E. McKenney <paulmck@xxxxxxxxxxxxx> - -i="$1" -if test -d "$i" -a -r "$i" -then - : -else - echo Unreadable results directory: $i - exit 1 -fi -PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH -. functions.sh - -configfile=`echo $i | sed -e 's/^.*\///'` - -sed -e 's/^\[[^]]*]//' < $i/console.log | tr -d '\015' | -awk -v configfile="$configfile" ' -/^[ ]*Runs Time\(ns\) *$/ { - if (dataphase + 0 == 0) { - dataphase = 1; - # print configfile, $0; - } - next; -} - -/[^ ]*[0-9][0-9]* [0-9][0-9]*\.[0-9][0-9]*$/ { - if (dataphase == 1) { - # print $0; - readertimes[++n] = $2; - sum += $2; - } - next; -} - -{ - if (dataphase == 1) - dataphase == 2; - next; -} - -END { - print configfile " results:"; - newNR = asort(readertimes); - if (newNR <= 0) { - print "No refperf records found???" - exit; - } - medianidx = int(newNR / 2); - if (newNR == medianidx * 2) - medianvalue = (readertimes[medianidx - 1] + readertimes[medianidx]) / 2; - else - medianvalue = readertimes[medianidx]; - points = "Points:"; - for (i = 1; i <= newNR; i++) - points = points " " readertimes[i]; - print points; - print "Average reader duration: " sum / newNR " nanoseconds"; - print "Minimum reader duration: " readertimes[1]; - print "Median reader duration: " medianvalue; - print "Maximum reader duration: " readertimes[newNR]; - print "Computed from refperf printk output."; -}' diff --git a/tools/testing/selftests/rcutorture/bin/kvm-recheck-refscale.sh b/tools/testing/selftests/rcutorture/bin/kvm-recheck-refscale.sh new file mode 100755 index 0000000..35a463d --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/kvm-recheck-refscale.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0+ +# +# Analyze a given results directory for refscale performance measurements. +# +# Usage: kvm-recheck-refscale.sh resdir +# +# Copyright (C) IBM Corporation, 2016 +# +# Authors: Paul E. McKenney <paulmck@xxxxxxxxxxxxx> + +i="$1" +if test -d "$i" -a -r "$i" +then + : +else + echo Unreadable results directory: $i + exit 1 +fi +PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH +. functions.sh + +configfile=`echo $i | sed -e 's/^.*\///'` + +sed -e 's/^\[[^]]*]//' < $i/console.log | tr -d '\015' | +awk -v configfile="$configfile" ' +/^[ ]*Runs Time\(ns\) *$/ { + if (dataphase + 0 == 0) { + dataphase = 1; + # print configfile, $0; + } + next; +} + +/[^ ]*[0-9][0-9]* [0-9][0-9]*\.[0-9][0-9]*$/ { + if (dataphase == 1) { + # print $0; + readertimes[++n] = $2; + sum += $2; + } + next; +} + +{ + if (dataphase == 1) + dataphase == 2; + next; +} + +END { + print configfile " results:"; + newNR = asort(readertimes); + if (newNR <= 0) { + print "No refscale records found???" + exit; + } + medianidx = int(newNR / 2); + if (newNR == medianidx * 2) + medianvalue = (readertimes[medianidx - 1] + readertimes[medianidx]) / 2; + else + medianvalue = readertimes[medianidx]; + points = "Points:"; + for (i = 1; i <= newNR; i++) + points = points " " readertimes[i]; + print points; + print "Average reader duration: " sum / newNR " nanoseconds"; + print "Minimum reader duration: " readertimes[1]; + print "Median reader duration: " medianvalue; + print "Maximum reader duration: " readertimes[newNR]; + print "Computed from refscale printk output."; +}' diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/selftests/rcutorture/bin/kvm.sh index 48b6a72..ce05db3 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh @@ -180,14 +180,14 @@ do shift ;; --torture) - checkarg --torture "(suite name)" "$#" "$2" '^\(lock\|rcu\|rcuperf\|refperf\)$' '^--' + checkarg --torture "(suite name)" "$#" "$2" '^\(lock\|rcu\|rcuperf\|refscale\)$' '^--' TORTURE_SUITE=$2 shift - if test "$TORTURE_SUITE" = rcuperf || test "$TORTURE_SUITE" = refperf + if test "$TORTURE_SUITE" = rcuperf || test "$TORTURE_SUITE" = refscale then - # If you really want jitter for refperf or + # If you really want jitter for refscale or # rcuperf, specify it after specifying the rcuperf - # or the refperf. (But why jitter in these cases?) + # or the refscale. (But why jitter in these cases?) jitter=0 fi ;; diff --git a/tools/testing/selftests/rcutorture/bin/parse-console.sh b/tools/testing/selftests/rcutorture/bin/parse-console.sh index 85af11d..8cb908f 100755 --- a/tools/testing/selftests/rcutorture/bin/parse-console.sh +++ b/tools/testing/selftests/rcutorture/bin/parse-console.sh @@ -33,8 +33,8 @@ then fi cat /dev/null > $file.diags -# Check for proper termination, except for rcuperf and refperf. -if test "$TORTURE_SUITE" != rcuperf && test "$TORTURE_SUITE" != refperf +# Check for proper termination, except for rcuperf and refscale. +if test "$TORTURE_SUITE" != rcuperf && test "$TORTURE_SUITE" != refscale then # check for abject failure diff --git a/tools/testing/selftests/rcutorture/configs/refperf/CFLIST b/tools/testing/selftests/rcutorture/configs/refperf/CFLIST deleted file mode 100644 index 4d62eb4..0000000 --- a/tools/testing/selftests/rcutorture/configs/refperf/CFLIST +++ /dev/null @@ -1,2 +0,0 @@ -NOPREEMPT -PREEMPT diff --git a/tools/testing/selftests/rcutorture/configs/refperf/CFcommon b/tools/testing/selftests/rcutorture/configs/refperf/CFcommon deleted file mode 100644 index a98b58b..0000000 --- a/tools/testing/selftests/rcutorture/configs/refperf/CFcommon +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_RCU_REF_SCALE_TEST=y -CONFIG_PRINTK_TIME=y diff --git a/tools/testing/selftests/rcutorture/configs/refperf/NOPREEMPT b/tools/testing/selftests/rcutorture/configs/refperf/NOPREEMPT deleted file mode 100644 index 1cd25b7..0000000 --- a/tools/testing/selftests/rcutorture/configs/refperf/NOPREEMPT +++ /dev/null @@ -1,18 +0,0 @@ -CONFIG_SMP=y -CONFIG_PREEMPT_NONE=y -CONFIG_PREEMPT_VOLUNTARY=n -CONFIG_PREEMPT=n -#CHECK#CONFIG_PREEMPT_RCU=n -CONFIG_HZ_PERIODIC=n -CONFIG_NO_HZ_IDLE=y -CONFIG_NO_HZ_FULL=n -CONFIG_RCU_FAST_NO_HZ=n -CONFIG_HOTPLUG_CPU=n -CONFIG_SUSPEND=n -CONFIG_HIBERNATION=n -CONFIG_RCU_NOCB_CPU=n -CONFIG_DEBUG_LOCK_ALLOC=n -CONFIG_PROVE_LOCKING=n -CONFIG_RCU_BOOST=n -CONFIG_DEBUG_OBJECTS_RCU_HEAD=n -CONFIG_RCU_EXPERT=y diff --git a/tools/testing/selftests/rcutorture/configs/refperf/PREEMPT b/tools/testing/selftests/rcutorture/configs/refperf/PREEMPT deleted file mode 100644 index d10bc69..0000000 --- a/tools/testing/selftests/rcutorture/configs/refperf/PREEMPT +++ /dev/null @@ -1,18 +0,0 @@ -CONFIG_SMP=y -CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=n -CONFIG_PREEMPT=y -#CHECK#CONFIG_PREEMPT_RCU=y -CONFIG_HZ_PERIODIC=n -CONFIG_NO_HZ_IDLE=y -CONFIG_NO_HZ_FULL=n -CONFIG_RCU_FAST_NO_HZ=n -CONFIG_HOTPLUG_CPU=n -CONFIG_SUSPEND=n -CONFIG_HIBERNATION=n -CONFIG_RCU_NOCB_CPU=n -CONFIG_DEBUG_LOCK_ALLOC=n -CONFIG_PROVE_LOCKING=n -CONFIG_RCU_BOOST=n -CONFIG_DEBUG_OBJECTS_RCU_HEAD=n -CONFIG_RCU_EXPERT=y diff --git a/tools/testing/selftests/rcutorture/configs/refperf/ver_functions.sh b/tools/testing/selftests/rcutorture/configs/refperf/ver_functions.sh deleted file mode 100644 index 321e826..0000000 --- a/tools/testing/selftests/rcutorture/configs/refperf/ver_functions.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: GPL-2.0+ -# -# Torture-suite-dependent shell functions for the rest of the scripts. -# -# Copyright (C) IBM Corporation, 2015 -# -# Authors: Paul E. McKenney <paulmck@xxxxxxxxxxxxx> - -# per_version_boot_params bootparam-string config-file seconds -# -# Adds per-version torture-module parameters to kernels supporting them. -per_version_boot_params () { - echo $1 refscale.shutdown=1 \ - refscale.verbose=1 -} diff --git a/tools/testing/selftests/rcutorture/configs/refscale/CFLIST b/tools/testing/selftests/rcutorture/configs/refscale/CFLIST new file mode 100644 index 0000000..4d62eb4 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/refscale/CFLIST @@ -0,0 +1,2 @@ +NOPREEMPT +PREEMPT diff --git a/tools/testing/selftests/rcutorture/configs/refscale/CFcommon b/tools/testing/selftests/rcutorture/configs/refscale/CFcommon new file mode 100644 index 0000000..a98b58b --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/refscale/CFcommon @@ -0,0 +1,2 @@ +CONFIG_RCU_REF_SCALE_TEST=y +CONFIG_PRINTK_TIME=y diff --git a/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT b/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT new file mode 100644 index 0000000..1cd25b7 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT @@ -0,0 +1,18 @@ +CONFIG_SMP=y +CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_VOLUNTARY=n +CONFIG_PREEMPT=n +#CHECK#CONFIG_PREEMPT_RCU=n +CONFIG_HZ_PERIODIC=n +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ_FULL=n +CONFIG_RCU_FAST_NO_HZ=n +CONFIG_HOTPLUG_CPU=n +CONFIG_SUSPEND=n +CONFIG_HIBERNATION=n +CONFIG_RCU_NOCB_CPU=n +CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_LOCKING=n +CONFIG_RCU_BOOST=n +CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_RCU_EXPERT=y diff --git a/tools/testing/selftests/rcutorture/configs/refscale/PREEMPT b/tools/testing/selftests/rcutorture/configs/refscale/PREEMPT new file mode 100644 index 0000000..d10bc69 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/refscale/PREEMPT @@ -0,0 +1,18 @@ +CONFIG_SMP=y +CONFIG_PREEMPT_NONE=n +CONFIG_PREEMPT_VOLUNTARY=n +CONFIG_PREEMPT=y +#CHECK#CONFIG_PREEMPT_RCU=y +CONFIG_HZ_PERIODIC=n +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ_FULL=n +CONFIG_RCU_FAST_NO_HZ=n +CONFIG_HOTPLUG_CPU=n +CONFIG_SUSPEND=n +CONFIG_HIBERNATION=n +CONFIG_RCU_NOCB_CPU=n +CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_LOCKING=n +CONFIG_RCU_BOOST=n +CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_RCU_EXPERT=y diff --git a/tools/testing/selftests/rcutorture/configs/refscale/ver_functions.sh b/tools/testing/selftests/rcutorture/configs/refscale/ver_functions.sh new file mode 100644 index 0000000..321e826 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/refscale/ver_functions.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0+ +# +# Torture-suite-dependent shell functions for the rest of the scripts. +# +# Copyright (C) IBM Corporation, 2015 +# +# Authors: Paul E. McKenney <paulmck@xxxxxxxxxxxxx> + +# per_version_boot_params bootparam-string config-file seconds +# +# Adds per-version torture-module parameters to kernels supporting them. +per_version_boot_params () { + echo $1 refscale.shutdown=1 \ + refscale.verbose=1 +}
![]() |