Skip to content

Commit 7226c5c

Browse files
committed
torture: Add --kcsan argument to top-level kvm.sh script
Although the existing --kconfig argument can be used to run KCSAN for an rcutorture test, it is not as straightforward as one might like: --kconfig "CONFIG_DEBUG_INFO=y CONFIG_KCSAN=y \ CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC=n \ CONFIG_KCSAN_REPORT_VALUE_CHANGE_ONLY=n \ CONFIG_KCSAN_REPORT_ONCE_IN_MS=100000 \ CONFIG_KCSAN_VERBOSE=y CONFIG_KCSAN_INTERRUPT_WATCHER=y" This commit therefore adds a "--kcsan" argument that emulates the above --kconfig command. Note that if you specify a Kconfig option using -kconfig that conflicts with one that --kcsan adds, you get whatever the script and the build system decide to give you. Cc: Marco Elver <[email protected]> Signed-off-by: Paul E. McKenney <[email protected]>
1 parent 55b2dcf commit 7226c5c

File tree

1 file changed

+8
-0
lines changed
  • tools/testing/selftests/rcutorture/bin

1 file changed

+8
-0
lines changed

tools/testing/selftests/rcutorture/bin/kvm.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ TORTURE_DEFCONFIG=defconfig
3131
TORTURE_BOOT_IMAGE=""
3232
TORTURE_INITRD="$KVM/initrd"; export TORTURE_INITRD
3333
TORTURE_KCONFIG_ARG=""
34+
TORTURE_KCONFIG_KCSAN_ARG=""
3435
TORTURE_KMAKE_ARG=""
3536
TORTURE_QEMU_MEM=512
3637
TORTURE_SHUTDOWN_GRACE=180
@@ -133,6 +134,9 @@ do
133134
TORTURE_KCONFIG_ARG="$2"
134135
shift
135136
;;
137+
--kcsan)
138+
TORTURE_KCONFIG_KCSAN_ARG="CONFIG_DEBUG_INFO=y CONFIG_KCSAN=y CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC=n CONFIG_KCSAN_REPORT_VALUE_CHANGE_ONLY=n CONFIG_KCSAN_REPORT_ONCE_IN_MS=100000 CONFIG_KCSAN_VERBOSE=y CONFIG_KCSAN_INTERRUPT_WATCHER=y"; export TORTURE_KCONFIG_KCSAN_ARG
139+
;;
136140
--kmake-arg)
137141
checkarg --kmake-arg "(kernel make arguments)" $# "$2" '.*' '^error$'
138142
TORTURE_KMAKE_ARG="$2"
@@ -201,6 +205,9 @@ else
201205
exit 1
202206
fi
203207

208+
TORTURE_KCONFIG_ARG="${TORTURE_KCONFIG_ARG} ${TORTURE_KCONFIG_KCSAN_ARG}"
209+
TORTURE_KCONFIG_ARG="`echo ${TORTURE_KCONFIG_ARG} | sed -e 's/^ *//' -e 's/ *$//'`"
210+
204211
CONFIGFRAG=${KVM}/configs/${TORTURE_SUITE}; export CONFIGFRAG
205212

206213
defaultconfigs="`tr '\012' ' ' < $CONFIGFRAG/CFLIST`"
@@ -310,6 +317,7 @@ TORTURE_BUILDONLY="$TORTURE_BUILDONLY"; export TORTURE_BUILDONLY
310317
TORTURE_DEFCONFIG="$TORTURE_DEFCONFIG"; export TORTURE_DEFCONFIG
311318
TORTURE_INITRD="$TORTURE_INITRD"; export TORTURE_INITRD
312319
TORTURE_KCONFIG_ARG="$TORTURE_KCONFIG_ARG"; export TORTURE_KCONFIG_ARG
320+
TORTURE_KCONFIG_KCSAN_ARG="$TORTURE_KCONFIG_KCSAN_ARG"; export TORTURE_KCONFIG_KCSAN_ARG
313321
TORTURE_KMAKE_ARG="$TORTURE_KMAKE_ARG"; export TORTURE_KMAKE_ARG
314322
TORTURE_QEMU_CMD="$TORTURE_QEMU_CMD"; export TORTURE_QEMU_CMD
315323
TORTURE_QEMU_INTERACTIVE="$TORTURE_QEMU_INTERACTIVE"; export TORTURE_QEMU_INTERACTIVE

0 commit comments

Comments
 (0)