Commit 755cf0af authored by Paul E. McKenney's avatar Paul E. McKenney

torture: Add --dryrun batches to help schedule a distributed run

When all of the remote systems have the same number of CPUs, one
approach is to use one "--buildonly" run and one "--dryrun sched" run,
and then distributing the batches out one per remote system.  However,
the output of "--dryrun sched" is not made for parsing, so this commit
adds a "--dryrun batches" that provides the same information in easily
parsed form.
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent f716348f
...@@ -60,7 +60,7 @@ usage () { ...@@ -60,7 +60,7 @@ usage () {
echo " --cpus N" echo " --cpus N"
echo " --datestamp string" echo " --datestamp string"
echo " --defconfig string" echo " --defconfig string"
echo " --dryrun sched|script" echo " --dryrun batches|sched|script"
echo " --duration minutes | <seconds>s | <hours>h | <days>d" echo " --duration minutes | <seconds>s | <hours>h | <days>d"
echo " --gdb" echo " --gdb"
echo " --help" echo " --help"
...@@ -126,7 +126,7 @@ do ...@@ -126,7 +126,7 @@ do
shift shift
;; ;;
--dryrun) --dryrun)
checkarg --dryrun "sched|script" $# "$2" 'sched\|script' '^--' checkarg --dryrun "batches|sched|script" $# "$2" 'batches\|sched\|script' '^--'
dryrun=$2 dryrun=$2
shift shift
;; ;;
...@@ -235,7 +235,7 @@ do ...@@ -235,7 +235,7 @@ do
shift shift
done done
if test -z "$TORTURE_INITRD" || tools/testing/selftests/rcutorture/bin/mkinitrd.sh if test -n "$dryrun" || test -z "$TORTURE_INITRD" || tools/testing/selftests/rcutorture/bin/mkinitrd.sh
then then
: :
else else
...@@ -547,8 +547,7 @@ then ...@@ -547,8 +547,7 @@ then
elif test "$dryrun" = sched elif test "$dryrun" = sched
then then
# Extract the test run schedule from the script. # Extract the test run schedule from the script.
egrep 'Start batch|Starting build\.' $T/script | egrep 'Start batch|Starting build\.' $T/script | grep -v ">>" |
grep -v ">>" |
sed -e 's/:.*$//' -e 's/^echo //' sed -e 's/:.*$//' -e 's/^echo //'
nbuilds="`grep 'Starting build\.' $T/script | nbuilds="`grep 'Starting build\.' $T/script |
grep -v ">>" | sed -e 's/:.*$//' -e 's/^echo //' | grep -v ">>" | sed -e 's/:.*$//' -e 's/^echo //' |
...@@ -557,6 +556,19 @@ then ...@@ -557,6 +556,19 @@ then
nbatches="`grep 'Start batch' $T/script | grep -v ">>" | wc -l`" nbatches="`grep 'Start batch' $T/script | grep -v ">>" | wc -l`"
echo Total number of batches: $nbatches echo Total number of batches: $nbatches
exit 0 exit 0
elif test "$dryrun" = batches
then
# Extract the tests and their batches from the script.
egrep 'Start batch|Starting build\.' $T/script | grep -v ">>" |
sed -e 's/:.*$//' -e 's/^echo //' -e 's/-ovf//' |
awk '
/^----Start/ {
batchno = $3;
next;
}
{
print batchno, $1, $2
}'
else else
# Not a dryrun, so run the script. # Not a dryrun, so run the script.
bash $T/script bash $T/script
......
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