Torture updates for 3.17
Subsystems (3)
cover Torture updates for 3.17
Hello!
This series provides torture-test updates:
1. Enable old script versions without CFcommon files to operate
correctly.
2. Clean up diagnostics from --buildonly runs.
3. Avoid format string leak to thead name, courtesy of Kees Cook.
Thanx, Paul
------------------------------------------------------------------------
b/kernel/torture.c | 2 - b/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh | 8 ++++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 9 ++++- b/tools/testing/selftests/rcutorture/bin/kvm.sh | 21 +++++++------ 4 files changed, 27 insertions(+), 13 deletions(-)
PATCH 1/3 torture: Enable versions without CFcommon to function correctly
From: "Paul E. McKenney" <[email protected]>
The CFcommon file must now be present, which makes using the current scripts against old kernel versions cumbersome. This commit therefore makes the CFcommon file be optional, so that old kernel versions can be used with current torture scripts.
--- tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 1 + 1 file changed, 1 insertion(+)
tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh +1 -0
@@ -42,6 +42,7 @@ grace=120 T=/tmp/kvm-test-1-run.sh.$$ trap 'rm -rf $T' 0 +touch $T . $KVM/bin/functions.sh . $KVPATH/ver_functions.sh
Signature · 1 line
1.8.1.5
PATCH 2/3 torture: Clean up diagnostics from --buildonly runs
From: "Paul E. McKenney" <[email protected]>
Currently the post-processing complains about the lack of rcutorture output when --buildonly is set and also emits misleading messages about kernels being started and finishing. This commit suppresses these complaints and messages.
--- .../testing/selftests/rcutorture/bin/kvm-recheck.sh | 8 +++++++- .../selftests/rcutorture/bin/kvm-test-1-run.sh | 8 ++++++-- tools/testing/selftests/rcutorture/bin/kvm.sh | 21 ++++++++++++--------- 3 files changed, 25 insertions(+), 12 deletions(-)
tools/testing/selftests/rcutorture/bin/kvm-recheck.sh +7 -1
@@ -54,10 +54,16 @@ do if test -f "$i/qemu-cmd" then print_bug qemu failed + echo " $i" + elif test -f "$i/buildonly" + then + echo Build-only run, no boot/test + configcheck.sh $i/.config $i/ConfigFragment + parse-build.sh $i/Make.out $configfile else print_bug Build failed + echo " $i" fi - echo " $i" fi done done
tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh +6 -2
@@ -132,7 +132,10 @@ boot_args=$6 cd $KVM kstarttime=`awk 'BEGIN { print systime() }' < /dev/null` -echo ' ---' `date`: Starting kernel +if test -z "$TORTURE_BUILDONLY" +then + echo ' ---' `date`: Starting kernel +fi # Generate -smp qemu argument. qemu_args="-nographic $qemu_args"
@@ -158,12 +161,13 @@ boot_args="`configfrag_boot_params "$boot_args" "$config_template"`" # Generate kernel-version-specific boot parameters boot_args="`per_version_boot_params "$boot_args" $builddir/.config $seconds`" -echo $QEMU $qemu_args -m 512 -kernel $builddir/$BOOT_IMAGE -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd if test -n "$TORTURE_BUILDONLY" then echo Build-only run specified, boot/test omitted. + touch $resdir/buildonly exit 0 fi +echo $QEMU $qemu_args -m 512 -kernel $builddir/$BOOT_IMAGE -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd ( $QEMU $qemu_args -m 512 -kernel $builddir/$BOOT_IMAGE -append "$qemu_append $boot_args"; echo $? > $resdir/qemu-retval ) & qemu_pid=$! commandcompleted=0
tools/testing/selftests/rcutorture/bin/kvm.sh +12 -9
@@ -340,12 +340,18 @@ function dump(first, pastlast) for (j = 1; j < jn; j++) { builddir=KVM "/b" j print "rm -f " builddir ".ready" - print "echo ----", cfr[j], cpusr[j] ovf ": Starting kernel. `date`"; - print "echo ----", cfr[j], cpusr[j] ovf ": Starting kernel. `date` >> " rd "/log"; + print "if test -z \"$TORTURE_BUILDONLY\"" + print "then" + print "\techo ----", cfr[j], cpusr[j] ovf ": Starting kernel. `date`"; + print "\techo ----", cfr[j], cpusr[j] ovf ": Starting kernel. `date` >> " rd "/log"; + print "fi" } print "wait" - print "echo ---- All kernel runs complete. `date`"; - print "echo ---- All kernel runs complete. `date` >> " rd "/log"; + print "if test -z \"$TORTURE_BUILDONLY\"" + print "then" + print "\techo ---- All kernel runs complete. `date`"; + print "\techo ---- All kernel runs complete. `date` >> " rd "/log"; + print "fi" for (j = 1; j < jn; j++) { builddir=KVM "/b" j print "echo ----", cfr[j], cpusr[j] ovf ": Build/run results:";
@@ -385,10 +391,7 @@ echo echo echo " --- `date` Test summary:" echo Results directory: $resdir/$ds -if test -z "$TORTURE_BUILDONLY" -then - kvm-recheck.sh $resdir/$ds -fi +kvm-recheck.sh $resdir/$ds ___EOF___ if test "$dryrun" = script
@@ -403,7 +406,7 @@ then sed -e 's/:.*$//' -e 's/^echo //' exit 0 else - # Not a dryru, so run the script. + # Not a dryrun, so run the script. sh $T/script fi
Signature · 1 line
1.8.1.5
PATCH 3/3 torture: Avoid format string leak to thead name
In reply to Paul E. McKenneyFrom: Kees Cook <[email protected]>
Since the torture-test thread creation interface does not include format string arguments, this commit makes sure the name can never be accidentally processed as a format string.
--- kernel/torture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/torture.c +1 -1
@@ -708,7 +708,7 @@ int _torture_create_kthread(int (*fn)(void *arg), void *arg, char *s, char *m,int ret =0 ;VERBOSE_TOROUT_STRING (m); - *tp =kthread_run (fn, arg, s); + *tp =kthread_run (fn, arg,"%s" , s);if (IS_ERR (*tp)) { ret =PTR_ERR (*tp);VERBOSE_TOROUT_ERRSTRING (f);
Signature · 1 line
1.8.1.5