rcutorture: Don't wait for kernel when all builds fail
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 2 May 2017 22:22:26 +0000 (15:22 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 24 Jul 2017 23:04:11 +0000 (16:04 -0700)
commit85ef2bd2a561055f3b1cab634f67b734034eb984
tree0b2ca8e0cc8bd2f880ca77e050bb697f8b380a56
parentd62c9833d6474abc332d68e80b78ea9d4659058e
rcutorture: Don't wait for kernel when all builds fail

Currently, rcutorture groups runs in batches, building each scenario in
a given batch, then invoking qemu to run all the kernels in the batch.
Of course, if a given scenario's kernel fails to build, there is no qemu
run for that scenario.  And if all of the kernels in a given batch fail
to build, there are no runs, and rcutorture immediately starts on the
next batch.

But not if --jitter has been specified, which it is by default.  In this
case, the jitter scripts are started unconditionally, and rcutorture
waits for them to complete, even though there are no kernels to run.

This commit therefore checks for this situation, and refuses to start
jitter unless at least one of the kernels in the batch built successfully.
This saves substantial time when all scenarios' kernels fail to build,
particularly if a long --duration was specified.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
tools/testing/selftests/rcutorture/bin/kvm.sh