torture: Make kvm-transform.sh update jitter commands
authorPaul E. McKenney <paulmck@kernel.org>
Mon, 22 Feb 2021 22:58:41 +0000 (14:58 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 22 Mar 2021 15:29:20 +0000 (08:29 -0700)
When rerunning an old run using kvm-again.sh, the jitter commands
will re-use the original "res" directory.  This works, but is clearly
an accident waiting to happen.  And this accident will happen with
remote runs, where the original directory lives on some other system.
This commit therefore updates the qemu-cmd commands to use the new res
directory created for this specific run.

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

index e7e54581d23e2f8bc8b9cc7b20ea1eecf5f91d8b..3fb57ce5aafca1571d7b67a9ab138bd144c7d94e 100755 (executable)
@@ -153,7 +153,8 @@ do
        cp "$i" $T
        qemu_cmd_dir="`dirname "$i"`"
        kernel_dir="`echo $qemu_cmd_dir | sed -e 's/\.[0-9]\+$//'`"
-       kvm-transform.sh $kernel_dir/bzImage $qemu_cmd_dir/console.log $dur < $T/qemu-cmd > $i
+       jitter_dir="`dirname "$kernel_dir"`"
+       kvm-transform.sh "$kernel_dir/bzImage" "$qemu_cmd_dir/console.log" "$jitter_dir" $dur < $T/qemu-cmd > $i
        if test -n "$dur"
        then
                echo "# seconds=$dur" >> $i
index 162dddbcde00b50ba0ffc5a38b4eb68a9e3f664d..e9dcbce17bbdfc4a6ed02e095c8511947d0fb0c9 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # Transform a qemu-cmd file to allow reuse.
 #
-# Usage: kvm-transform.sh bzImage console.log [ seconds ] < qemu-cmd-in > qemu-cmd-out
+# Usage: kvm-transform.sh bzImage console.log jitter_dir [ seconds ] < qemu-cmd-in > qemu-cmd-out
 #
 #      bzImage: Kernel and initrd from the same prior kvm.sh run.
 #      console.log: File into which to place console output.
@@ -29,14 +29,31 @@ then
        echo "Need console log file name."
        exit 1
 fi
-seconds=$3
+jitter_dir="$3"
+if test -z "$jitter_dir" || ! test -d "$jitter_dir"
+then
+       echo "Need valid jitter directory: '$jitter_dir'"
+       exit 1
+fi
+seconds="$4"
 if test -n "$seconds" && echo $seconds | grep -q '[^0-9]'
 then
        echo "Invalid duration, should be numeric in seconds: '$seconds'"
        exit 1
 fi
 
-awk -v image="$image" -v consolelog="$consolelog" -v seconds="$seconds" '
+awk -v image="$image" -v consolelog="$consolelog" -v jitter_dir="$jitter_dir" \
+    -v seconds="$seconds" '
+/^# TORTURE_JITTER_START=/ {
+       print "# TORTURE_JITTER_START=\". jitterstart.sh " $4 " " jitter_dir " " $6 " " $7;
+       next;
+}
+
+/^# TORTURE_JITTER_STOP=/ {
+       print "# TORTURE_JITTER_STOP=\". jitterstop.sh " " " jitter_dir " " $5;
+       next;
+}
+
 /^#/ {
        print $0;
        next;