On 19 September 2026 01:00:56 BST, "Paul E. McKenney" <[email protected]>
wrote:
>This commit adds hazard-pointer torturing to the torture.sh script
>as a default-on option.  This uses the same duration as rcutorture.
>While in the area, change kvm.sh to tolerate the empty-string arguments
>that torture.sh can generate, for example, if a given test needs no
>boot arguments.
>
>Signed-off-by: Paul E. McKenney <[email protected]>
>Cc: Mathieu Desnoyers <[email protected]>
>Cc: Boqun Feng <[email protected]>
>Cc: Bradley Morgan <[email protected]>

Why CC? Well thanks, this'll benefit my new PowerPC box :) (manifesting!)

Reviewed-by: Bradley Morgan <[email protected]>


>---
> tools/testing/selftests/rcutorture/bin/kvm.sh |  4 +++
> .../selftests/rcutorture/bin/torture.sh       | 26 ++++++++++++++++++-
> 2 files changed, 29 insertions(+), 1 deletion(-)
>
>diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh 
>b/tools/testing/selftests/rcutorture/bin/kvm.sh
>index 32c319997638..2f386cf536e3 100755
>--- a/tools/testing/selftests/rcutorture/bin/kvm.sh
>+++ b/tools/testing/selftests/rcutorture/bin/kvm.sh
>@@ -98,6 +98,7 @@ usage () {
> 
> while test $# -gt 0
> do
>+      echo Argument: :$1:
>       case "$1" in
>       --allcpus)
>               cpus=$TORTURE_ALLOTED_CPUS
>@@ -271,6 +272,9 @@ do
>       --trust-make)
>               TORTURE_TRUST_MAKE="y"
>               ;;
>+      "")
>+              # torture.sh can pass empty arguments.  Ignore them.
>+              ;;
>       *)
>               echo Unknown argument $1
>               usage
>diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh 
>b/tools/testing/selftests/rcutorture/bin/torture.sh
>index f0083891ee81..2824dab14d41 100755
>--- a/tools/testing/selftests/rcutorture/bin/torture.sh
>+++ b/tools/testing/selftests/rcutorture/bin/torture.sh
>@@ -43,6 +43,7 @@ fi
> configs_rcutorture=
> configs_locktorture=
> configs_scftorture=
>+configs_hazptr=
> kcsan_kmake_args=
> 
> # Default compression, duration, and apportionment.
>@@ -69,6 +70,7 @@ do_rt=yes
> do_rcutasksflavors="${ifnotaarch64}" # FIXME: Back to "yes" when SMP=n
> auto-avoided
> do_srcu_lockdep=yes
> do_rcu_rust=no
>+do_hazptr=yes
> 
> # doyesno - Helper function for yes/no arguments
> function doyesno () {
>@@ -89,6 +91,7 @@ usage () {
>       echo "       --do-all"
>       echo "       --do-allmodconfig / --do-no-allmodconfig / 
> --no-allmodconfig"
>       echo "       --do-clocksourcewd / --do-no-clocksourcewd / 
> --no-clocksourcewd"
>+      echo "       --do-hazptr / --do-no-hazptr / --no-hazptr"
>       echo "       --do-kasan / --do-no-kasan / --no-kasan"
>       echo "       --do-kcsan / --do-no-kcsan / --no-kcsan"
>       echo "       --do-kvfree / --do-no-kvfree / --no-kvfree"
>@@ -117,6 +120,11 @@ do
>               compress_concurrency=$2
>               shift
>               ;;
>+      --config-hazptr|--configs-hazptr)
>+              checkarg --configs-hazptr "(list of config files)" "$#" "$2" 
>'^[^/]\+$' '^--'
>+              configs_hazptr="$configs_hazptr $2"
>+              shift
>+              ;;
>       --config-rcutorture|--configs-rcutorture)
>               checkarg --configs-rcutorture "(list of config files)" "$#" 
> "$2" '^[^/]\+$' '^--'
>               configs_rcutorture="$configs_rcutorture $2"
>@@ -147,6 +155,7 @@ do
>               do_kasan=yes
>               do_kcsan=yes
>               do_clocksourcewd="${ifnotaarch64}"
>+              do_hazptr=yes
>               do_srcu_lockdep=yes
>               ;;
>       --do-allmodconfig|--do-no-allmodconfig|--no-allmodconfig)
>@@ -155,6 +164,9 @@ do
>       --do-clocksourcewd|--do-no-clocksourcewd|--no-clocksourcewd)
>               do_clocksourcewd=`doyesno "$1" --do-clocksourcewd`
>               ;;
>+      --do-hazptr|--do-no-hazptr|--no-hazptr)
>+              do_hazptr=`doyesno "$1" --do-hazptr`
>+              ;;
>       --do-kasan|--do-no-kasan|--no-kasan)
>               do_kasan=`doyesno "$1" --do-kasan`
>               ;;
>@@ -182,6 +194,7 @@ do
>               do_kasan=no
>               do_kcsan=no
>               do_clocksourcewd=no
>+              do_hazptr=no
>               do_srcu_lockdep=no
>               ;;
>       --do-normal|--do-norm|--do-no-normal|--do-no-norm|--no-normal|--no-norm)
>@@ -343,7 +356,7 @@ function torture_one {
>               boottag="--bootargs"
>               cur_bootargs="$torture_bootargs"
>       fi
>-      "$@" $boottag "$cur_bootargs" --datestamp "$ds/results-$curflavor" > 
>$T/$curflavor.out 2>&1
>+      "$@" "${boottag}" "$cur_bootargs" --datestamp "$ds/results-$curflavor" 
>> $T/$curflavor.out 2>&1
>       retcode=$?
>       resdir="`grep '^Results directory: ' $T/$curflavor.out | tail -1 | sed 
> -e 's/^Results directory: //'`"
>       if test -z "$resdir"
>@@ -704,6 +717,17 @@ then
>       fi
> fi
> 
>+# Calculate hazptr defaults and apportion time
>+if test -z "$configs_hazptr"
>+then
>+      configs_hazptr=CFLIST
>+fi
>+if test "$do_hazptr" = "yes"
>+then
>+      torture_bootargs=""
>+      torture_set "hazptr" tools/testing/selftests/rcutorture/bin/kvm.sh 
>--torture hazptr --allcpus --duration "$duration_rcutorture" --configs 
>"$configs_hazptr" --trust-make
>+fi
>+
> echo " --- " $scriptname $args
> echo " --- " Done `date` | tee -a $T/log
> ret=0
>

--- Thanks!
https://lore.kernel.org/all/[email protected]/

Reply via email to