torture: Make kvm-transform.sh update jitter commands

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>
This commit is contained in:
Paul E. McKenney 2021-02-22 14:58:41 -08:00
parent 00505165cf
commit 018629e909
2 changed files with 22 additions and 4 deletions

View File

@ -153,7 +153,8 @@ do
cp "$i" $T cp "$i" $T
qemu_cmd_dir="`dirname "$i"`" qemu_cmd_dir="`dirname "$i"`"
kernel_dir="`echo $qemu_cmd_dir | sed -e 's/\.[0-9]\+$//'`" 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" if test -n "$dur"
then then
echo "# seconds=$dur" >> $i echo "# seconds=$dur" >> $i

View File

@ -3,7 +3,7 @@
# #
# Transform a qemu-cmd file to allow reuse. # 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. # bzImage: Kernel and initrd from the same prior kvm.sh run.
# console.log: File into which to place console output. # console.log: File into which to place console output.
@ -29,14 +29,31 @@ then
echo "Need console log file name." echo "Need console log file name."
exit 1 exit 1
fi 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]' if test -n "$seconds" && echo $seconds | grep -q '[^0-9]'
then then
echo "Invalid duration, should be numeric in seconds: '$seconds'" echo "Invalid duration, should be numeric in seconds: '$seconds'"
exit 1 exit 1
fi 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; print $0;
next; next;