From: "Paul E. McKenney" <paulmck@kernel.org>
To: rcu@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com,
rostedt@goodmis.org, "Paul E. McKenney" <paulmck@kernel.org>,
Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH rcu 07/18] torture: Add RCU Tasks individual-flavor build tests
Date: Mon, 17 Jul 2023 11:23:26 -0700 [thread overview]
Message-ID: <20230717182337.1098991-7-paulmck@kernel.org> (raw)
In-Reply-To: <d03c7482-acde-4f33-a7fb-fa7c58fdc9a2@paulmck-laptop>
This commit adds build tests of the individual RCU Tasks flavors in
order to detect inadvertent dependencies among the flavors.
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
---
.../selftests/rcutorture/bin/torture.sh | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/testing/selftests/rcutorture/bin/torture.sh
index c3190ca9c96f..dd3bfadb0639 100755
--- a/tools/testing/selftests/rcutorture/bin/torture.sh
+++ b/tools/testing/selftests/rcutorture/bin/torture.sh
@@ -55,6 +55,7 @@ do_kasan=yes
do_kcsan=no
do_clocksourcewd=yes
do_rt=yes
+do_rcutasksflavors=yes
# doyesno - Helper function for yes/no arguments
function doyesno () {
@@ -81,6 +82,7 @@ usage () {
echo " --do-locktorture / --do-no-locktorture / --no-locktorture"
echo " --do-none"
echo " --do-rcuscale / --do-no-rcuscale / --no-rcuscale"
+ echo " --do-rcutasksflavors / --do-no-rcutasksflavors / --no-rcutasksflavors"
echo " --do-rcutorture / --do-no-rcutorture / --no-rcutorture"
echo " --do-refscale / --do-no-refscale / --no-refscale"
echo " --do-rt / --do-no-rt / --no-rt"
@@ -115,6 +117,7 @@ do
;;
--do-all|--doall)
do_allmodconfig=yes
+ do_rcutasksflavor=yes
do_rcutorture=yes
do_locktorture=yes
do_scftorture=yes
@@ -146,6 +149,7 @@ do
;;
--do-none|--donone)
do_allmodconfig=no
+ do_rcutasksflavors=no
do_rcutorture=no
do_locktorture=no
do_scftorture=no
@@ -160,6 +164,9 @@ do
--do-rcuscale|--do-no-rcuscale|--no-rcuscale)
do_rcuscale=`doyesno "$1" --do-rcuscale`
;;
+ --do-rcutasksflavors|--do-no-rcutasksflavors|--no-rcutasksflavors)
+ do_rcutasksflavors=`doyesno "$1" --do-rcutasksflavors`
+ ;;
--do-rcutorture|--do-no-rcutorture|--no-rcutorture)
do_rcutorture=`doyesno "$1" --do-rcutorture`
;;
@@ -361,6 +368,40 @@ then
fi
fi
+# Test building RCU Tasks flavors in isolation, both SMP and !SMP
+if test "$do_rcutasksflavors" = "yes"
+then
+ echo " --- rcutasksflavors:" Start `date` | tee -a $T/log
+ rtfdir="tools/testing/selftests/rcutorture/res/$ds/results-rcutasksflavors"
+ mkdir -p "$rtfdir"
+ cat > $T/rcutasksflavors << __EOF__
+#CHECK#CONFIG_TASKS_RCU=n
+#CHECK#CONFIG_TASKS_RUDE_RCU=n
+#CHECK#CONFIG_TASKS_TRACE_RCU=n
+__EOF__
+ for flavor in CONFIG_TASKS_RCU CONFIG_TASKS_RUDE_RCU CONFIG_TASKS_TRACE_RCU
+ do
+ forceflavor="`echo $flavor | sed -e 's/^CONFIG/CONFIG_FORCE/'`"
+ deselectedflavors="`grep -v $flavor $T/rcutasksflavors | tr '\012' ' ' | tr -s ' ' | sed -e 's/ *$//'`"
+ echo " --- Running RCU Tasks Trace flavor $flavor `date`" >> $rtfdir/log
+ tools/testing/selftests/rcutorture/bin/kvm.sh --datestamp "$ds/results-rcutasksflavors/$flavor" --buildonly --configs "TINY01 TREE04" --kconfig "CONFIG_RCU_EXPERT=y CONFIG_RCU_SCALE_TEST=y $forceflavor=y $deselectedflavors" --trust-make > $T/$flavor.out 2>&1
+ retcode=$?
+ if test "$retcode" -ne 0
+ then
+ break
+ fi
+ done
+ if test "$retcode" -eq 0
+ then
+ echo "rcutasksflavors($retcode)" $rtfdir >> $T/successes
+ echo Success >> $rtfdir/log
+ else
+ echo "rcutasksflavors($retcode)" $rtfdir >> $T/failures
+ echo " --- rcutasksflavors Test summary:" >> $rtfdir/log
+ echo " --- Summary: Exit code $retcode from $flavor, see Make.out" >> $rtfdir/log
+ fi
+fi
+
# --torture rcu
if test "$do_rcutorture" = "yes"
then
--
2.40.1
next prev parent reply other threads:[~2023-07-17 18:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-17 18:23 [PATCH rcu 0/18] Torture-test scripting updates for v6.6 Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 01/18] rcutorture: Remove obsolete BOOTPARAM_HOTPLUG_CPU0 Kconfig option Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 02/18] rcu: Remove formal-verification tests Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 03/18] torture: Add "--no-" as synonym for "--do-no-" in torture.sh Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 04/18] rcutorture: Remove contradictory Kconfig constraint Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 05/18] torture: Allow #CHECK# in --kconfig argument to kvm.sh Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 06/18] torture: Make kvm-recheck.sh report .config errors Paul E. McKenney
2023-07-17 18:23 ` Paul E. McKenney [this message]
2023-07-17 18:23 ` [PATCH rcu 08/18] torture: Make kvm-remote print diagnostics on initial ssh failure Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 09/18] rcutorture: Remove obsolete parameter check from mkinitrd.sh Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 10/18] torture: Place --bootargs parameters at end of -append list Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 11/18] torture: Make torture.sh summarize config and build errors Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 12/18] torture: Loosen .config checks for KCSAN kernels Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 13/18] torture: Add srcu_lockdep.sh to torture.sh Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 14/18] torture: Avoid torture-test reboot loops Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 15/18] torture: Add init-program support for loongarch Paul E. McKenney
2023-07-18 2:56 ` Feiyang Chen
2023-07-18 18:41 ` Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 16/18] torture: Switch qemu from -nographic to -display none Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 17/18] torture: Make init program dump command-line arguments Paul E. McKenney
2023-07-17 18:23 ` [PATCH rcu 18/18] torture: Cause mkinitrd.sh to indicate failure on compile errors Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230717182337.1098991-7-paulmck@kernel.org \
--to=paulmck@kernel.org \
--cc=arnd@arndb.de \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).