mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
	josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org,
	rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com,
	dvhart@linux.intel.com, fweisbec@gmail.com, oleg@redhat.com,
	bobby.prani@gmail.com,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: [PATCH tip/core/rcu 18/24] torture: Kill qemu, not parent process
Date: Tue, 12 Apr 2016 08:43:51 -0700	[thread overview]
Message-ID: <1460475837-26498-18-git-send-email-paulmck@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160412154332.GA24983@linux.vnet.ibm.com>

The current hang-check machinery in the rcutorture scripts uses "$!" of
a parenthesized bash statement to capture the pid.  Unfortunately, this
captures not qemu's pid, but rather that of its parent that implements
the parenthesized statement.  This commit therefore adjusts things so as
to capture qemu's actual pid, which then allows the script to actually
kill qemu in event of a kernel hang.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
 .../selftests/rcutorture/bin/kvm-test-1-run.sh     | 30 +++++++++++++++++-----
 1 file changed, 24 insertions(+), 6 deletions(-)

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 0f80eefb0bfd..2eb8fefbe7d9 100755
--- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
+++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
@@ -168,14 +168,25 @@ then
 fi
 echo "NOTE: $QEMU either did not run or was interactive" > $resdir/console.log
 echo $QEMU $qemu_args -m 512 -kernel $resdir/bzImage -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd
-( $QEMU $qemu_args -m 512 -kernel $resdir/bzImage -append "$qemu_append $boot_args"; echo $? > $resdir/qemu-retval ) &
-qemu_pid=$!
+( $QEMU $qemu_args -m 512 -kernel $resdir/bzImage -append "$qemu_append $boot_args"& echo $! > $resdir/qemu_pid; wait `cat  $resdir/qemu_pid`; echo $? > $resdir/qemu-retval ) &
 commandcompleted=0
-echo Monitoring qemu job at pid $qemu_pid
+sleep 10 # Give qemu's pid a chance to reach the file
+if test -s "$resdir/qemu_pid"
+then
+	qemu_pid=`cat "$resdir/qemu_pid"`
+	echo Monitoring qemu job at pid $qemu_pid
+else
+	qemu_pid=""
+	echo Monitoring qemu job at yet-as-unknown pid
+fi
 while :
 do
+	if test -z "$qemu_pid" -a -s "$resdir/qemu_pid"
+	then
+		qemu_pid=`cat "$resdir/qemu_pid"`
+	fi
 	kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null`
-	if kill -0 $qemu_pid > /dev/null 2>&1
+	if test -z "$qemu_pid" || kill -0 "$qemu_pid" > /dev/null 2>&1
 	then
 		if test $kruntime -ge $seconds
 		then
@@ -195,12 +206,16 @@ do
 				ps -fp $killpid >> $resdir/Warnings 2>&1
 			fi
 		else
-			echo ' ---' `date`: Kernel done
+			echo ' ---' `date`: "Kernel done"
 		fi
 		break
 	fi
 done
-if test $commandcompleted -eq 0
+if test -z "$qemu_pid" -a -s "$resdir/qemu_pid"
+then
+	qemu_pid=`cat "$resdir/qemu_pid"`
+fi
+if test $commandcompleted -eq 0 -a -n "$qemu_pid"
 then
 	echo Grace period for qemu job at pid $qemu_pid
 	while :
@@ -220,6 +235,9 @@ then
 		fi
 		sleep 1
 	done
+elif test -z "$qemu_pid"
+then
+	echo Unknown PID, cannot kill qemu command
 fi
 
 parse-torture.sh $resdir/console.log $title
-- 
2.5.2

  parent reply	other threads:[~2016-04-12 15:43 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-12 15:43 [PATCH tip/core/rcu 0/24] Torture-test changes for 4.7 Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 01/24] rcutorture: Update scripting to accommodate rcuperf Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 02/24] rcutorture: Allow for rcupdate.rcu_normal Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 03/24] rcutorture: Expedited-GP batch progress access to torturing Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 04/24] rcutorture: Add RCU grace-period performance tests Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 05/24] rcutorture: Documentation for rcuperf kernel parameters Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 06/24] rcutorture: Bind rcuperf reader/writer kthreads to CPUs Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 07/24] rcutorture: Set rcuperf writer kthreads to real-time priority Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 08/24] rcutorture: Print measure of batching efficiency Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 09/24] rcutorture: Make rcuperf collect expedited event-trace data Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 10/24] rcutorture: Make scripts analyze rcuperf trace data, if present Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 11/24] rcutorture: Add rcuperf holdoff boot parameter to reduce interference Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 12/24] rcutorture: Avoid RCU CPU stall warning and RT throttling Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 13/24] rcutorture: Add largish-system rcuperf scenario Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 14/24] rcuperf: Do not wake up shutdown wait queue if "shutdown" is false Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 15/24] rcutorture: Remove redundant initialization to zero Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 16/24] rcutorture: Consider FROZEN hotplug notifier transitions Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 17/24] torture: Clarify refusal to run more than one torture test Paul E. McKenney
2016-04-12 15:43 ` Paul E. McKenney [this message]
2016-04-12 15:43 ` [PATCH tip/core/rcu 19/24] rcutorture: Convert test duration to seconds early Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 20/24] rcutorture: Add OS-jitter capability Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 21/24] rcutorture: Don't rebuild identical kernel Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 22/24] rcutorture: Dump trace buffer upon shutdown Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 23/24] rcutorture: Add irqs-disabled test for call_rcu() Paul E. McKenney
2016-04-12 15:43 ` [PATCH tip/core/rcu 24/24] rcutorture: Add boot-time adjustment of leaf fanout Paul E. McKenney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1460475837-26498-18-git-send-email-paulmck@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=bobby.prani@gmail.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=dvhart@linux.intel.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jiangshanlai@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®