torture: Make kvm.sh include --kconfig arguments in CPU calculation
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 24 Nov 2020 21:12:13 +0000 (13:12 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 4 Jan 2021 22:01:22 +0000 (14:01 -0800)
Currently, passing something like "--kconfig CONFIG_NR_CPUS=2" to kvm.sh
has no effect on scenario scheduling.  For scenarios that do not specify
the number of CPUs, this can result in kvm.sh wastefully scheduling only
one scenario at a time even when the --kconfig argument would allow
a number to be run concurrently.  This commit therefore makes kvm.sh
consider the --kconfig arguments when scheduling scenarios across the
available CPUs.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/kvm.sh

index 6f2126815e22a4d4b2d0d63aaba0bf22759671ab..472929cb8312e1947b73fce524687ed02e7a3920 100755 (executable)
@@ -290,7 +290,13 @@ for CF1 in $configs_derep
 do
        if test -f "$CONFIGFRAG/$CF1"
        then
-               cpu_count=`configNR_CPUS.sh $CONFIGFRAG/$CF1`
+               if echo "$TORTURE_KCONFIG_ARG" | grep -q '\<CONFIG_NR_CPUS='
+               then
+                       echo "$TORTURE_KCONFIG_ARG" | tr -s ' ' | tr ' ' '\012' > $T/KCONFIG_ARG
+                       cpu_count=`configNR_CPUS.sh $T/KCONFIG_ARG`
+               else
+                       cpu_count=`configNR_CPUS.sh $CONFIGFRAG/$CF1`
+               fi
                cpu_count=`configfrag_boot_cpus "$TORTURE_BOOTARGS" "$CONFIGFRAG/$CF1" "$cpu_count"`
                cpu_count=`configfrag_boot_maxcpus "$TORTURE_BOOTARGS" "$CONFIGFRAG/$CF1" "$cpu_count"`
                echo $CF1 $cpu_count >> $T/cfgcpu