lkml.org 
[lkml]   [2020]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip: core/rcu] torture: Prevent jitter processes from delaying failed run
    The following commit has been merged into the core/rcu branch of tip:

    Commit-ID: c64659ef29e3901be0900ec6fb0485fa3dbdcfd8
    Gitweb: https://git.kernel.org/tip/c64659ef29e3901be0900ec6fb0485fa3dbdcfd8
    Author: Paul E. McKenney <paulmck@kernel.org>
    AuthorDate: Fri, 18 Sep 2020 13:26:22 -07:00
    Committer: Paul E. McKenney <paulmck@kernel.org>
    CommitterDate: Fri, 06 Nov 2020 17:13:53 -08:00

    torture: Prevent jitter processes from delaying failed run

    Even when the kernel panics and qemu dies, runs with jitter enabled will
    continue uselessly until the jitter.sh processes terminate. This can
    be annoying if a planned one-hour run instead dies during boot.

    This commit therefore kills the jitter.sh processes when the run ends
    more than one minute prior to the termination time specified by the
    kvm.sh --duration argument or its default.

    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    ---
    tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 14 +++++++-
    tools/testing/selftests/rcutorture/bin/kvm.sh | 5 ++-
    2 files changed, 18 insertions(+), 1 deletion(-)

    diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
    index d04966a..3cd03d0 100755
    --- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
    +++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
    @@ -226,6 +226,20 @@ do
    echo "ps -fp $killpid" >> $resdir/Warnings 2>&1
    ps -fp $killpid >> $resdir/Warnings 2>&1
    fi
    + # Reduce probability of PID reuse by allowing a one-minute buffer
    + if test $((kruntime + 60)) -lt $seconds && test -s "$resdir/../jitter_pids"
    + then
    + awk < "$resdir/../jitter_pids" '
    + NF > 0 {
    + pidlist = pidlist " " $1;
    + n++;
    + }
    + END {
    + if (n > 0) {
    + print "kill " pidlist;
    + }
    + }' | sh
    + fi
    else
    echo ' ---' `date`: "Kernel done"
    fi
    diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/selftests/rcutorture/bin/kvm.sh
    index 6eb1d3f..5ad3882 100755
    --- a/tools/testing/selftests/rcutorture/bin/kvm.sh
    +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh
    @@ -459,8 +459,11 @@ function dump(first, pastlast, batchnum)
    print "if test -n \"$needqemurun\""
    print "then"
    print "\techo ---- Starting kernels. `date` | tee -a " rd "log";
    - for (j = 0; j < njitter; j++)
    + print "\techo > " rd "jitter_pids"
    + for (j = 0; j < njitter; j++) {
    print "\tjitter.sh " j " " dur " " ja[2] " " ja[3] "&"
    + print "\techo $! >> " rd "jitter_pids"
    + }
    print "\twait"
    print "\techo ---- All kernel runs complete. `date` | tee -a " rd "log";
    print "else"
    \
     
     \ /
      Last update: 2020-12-13 20:14    [W:3.015 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site