Commit 7831b391 authored by Paul E. McKenney's avatar Paul E. McKenney

torture: Record jitter start/stop commands

Distributed runs of rcutorture will need to start and stop jittering on
the remote hosts, which means that the commands must be communicated to
those hosts.  The commit therefore causes kvm.sh to place these commands
in new TORTURE_JITTER_START and TORTURE_JITTER_STOP environment variables
to communicate them to the scripts that will set this up.  In addition,
this commit causes kvm-test-1-run.sh to append these commands to each
generated qemu-cmd file, which allows any remotely executing script to
extract the needed commands from this file.
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent d53f52d6
...@@ -202,6 +202,8 @@ echo $QEMU $qemu_args -m $TORTURE_QEMU_MEM -kernel $KERNEL -append \"$qemu_appen ...@@ -202,6 +202,8 @@ echo $QEMU $qemu_args -m $TORTURE_QEMU_MEM -kernel $KERNEL -append \"$qemu_appen
echo "# TORTURE_SHUTDOWN_GRACE=$TORTURE_SHUTDOWN_GRACE" >> $resdir/qemu-cmd echo "# TORTURE_SHUTDOWN_GRACE=$TORTURE_SHUTDOWN_GRACE" >> $resdir/qemu-cmd
echo "# seconds=$seconds" >> $resdir/qemu-cmd echo "# seconds=$seconds" >> $resdir/qemu-cmd
echo "# TORTURE_KCONFIG_GDB_ARG=\"$TORTURE_KCONFIG_GDB_ARG\"" >> $resdir/qemu-cmd echo "# TORTURE_KCONFIG_GDB_ARG=\"$TORTURE_KCONFIG_GDB_ARG\"" >> $resdir/qemu-cmd
echo "# TORTURE_JITTER_START=\"$TORTURE_JITTER_START\"" >> $resdir/qemu-cmd
echo "# TORTURE_JITTER_STOP=\"$TORTURE_JITTER_STOP\"" >> $resdir/qemu-cmd
if test -n "$TORTURE_BUILDONLY" if test -n "$TORTURE_BUILDONLY"
then then
......
...@@ -35,6 +35,8 @@ TORTURE_KCONFIG_ARG="" ...@@ -35,6 +35,8 @@ TORTURE_KCONFIG_ARG=""
TORTURE_KCONFIG_GDB_ARG="" TORTURE_KCONFIG_GDB_ARG=""
TORTURE_BOOT_GDB_ARG="" TORTURE_BOOT_GDB_ARG=""
TORTURE_QEMU_GDB_ARG="" TORTURE_QEMU_GDB_ARG=""
TORTURE_JITTER_START=""
TORTURE_JITTER_STOP=""
TORTURE_KCONFIG_KASAN_ARG="" TORTURE_KCONFIG_KASAN_ARG=""
TORTURE_KCONFIG_KCSAN_ARG="" TORTURE_KCONFIG_KCSAN_ARG=""
TORTURE_KMAKE_ARG="" TORTURE_KMAKE_ARG=""
...@@ -443,6 +445,16 @@ function dump(first, pastlast, batchnum) ...@@ -443,6 +445,16 @@ function dump(first, pastlast, batchnum)
print "echo ----Start batch " batchnum ": `date` | tee -a " rd "log"; print "echo ----Start batch " batchnum ": `date` | tee -a " rd "log";
print "needqemurun=" print "needqemurun="
jn=1 jn=1
njitter = 0;
split(jitter, ja);
if (ja[1] == -1 && ncpus == 0)
njitter = 1;
else if (ja[1] == -1)
njitter = ncpus;
else
njitter = ja[1];
print "TORTURE_JITTER_START=\". jitterstart.sh " njitter " " rd " " dur " " ja[2] " " ja[3] "\"; export TORTURE_JITTER_START";
print "TORTURE_JITTER_STOP=\". jitterstop.sh " rd " \"; export TORTURE_JITTER_STOP"
for (j = first; j < pastlast; j++) { for (j = first; j < pastlast; j++) {
cpusr[jn] = cpus[j]; cpusr[jn] = cpus[j];
if (cfrep[cf[j]] == "") { if (cfrep[cf[j]] == "") {
...@@ -484,14 +496,6 @@ function dump(first, pastlast, batchnum) ...@@ -484,14 +496,6 @@ function dump(first, pastlast, batchnum)
print "\tneedqemurun=1" print "\tneedqemurun=1"
print "fi" print "fi"
} }
njitter = 0;
split(jitter, ja);
if (ja[1] == -1 && ncpus == 0)
njitter = 1;
else if (ja[1] == -1)
njitter = ncpus;
else
njitter = ja[1];
if (TORTURE_BUILDONLY && njitter != 0) { if (TORTURE_BUILDONLY && njitter != 0) {
njitter = 0; njitter = 0;
print "echo Build-only run, so suppressing jitter | tee -a " rd "log" print "echo Build-only run, so suppressing jitter | tee -a " rd "log"
...@@ -502,12 +506,12 @@ function dump(first, pastlast, batchnum) ...@@ -502,12 +506,12 @@ function dump(first, pastlast, batchnum)
print "if test -n \"$needqemurun\"" print "if test -n \"$needqemurun\""
print "then" print "then"
print "\techo ---- Starting kernels. `date` | tee -a " rd "log"; print "\techo ---- Starting kernels. `date` | tee -a " rd "log";
print "\t. jitterstart.sh " njitter " " rd " " dur " " ja[2] " " ja[3] print "\t$TORTURE_JITTER_START";
print "\twhile ls $runfiles > /dev/null 2>&1" print "\twhile ls $runfiles > /dev/null 2>&1"
print "\tdo" print "\tdo"
print "\t\t:" print "\t\t:"
print "\tdone" print "\tdone"
print "\t. jitterstop.sh " rd print "\t$TORTURE_JITTER_STOP";
print "\techo ---- All kernel runs complete. `date` | tee -a " rd "log"; print "\techo ---- All kernel runs complete. `date` | tee -a " rd "log";
print "else" print "else"
print "\twait" print "\twait"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment