torture: Forgive lengthy trace dumps and preemption
This commit avoids killing qemu if a trace dump is making progress or if console log output is continuing and the console log timestamp does not exceed the total plus grace period. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
Родитель
4e9a073f60
Коммит
6e8c66c867
|
@ -229,6 +229,7 @@ fi
|
||||||
if test $commandcompleted -eq 0 -a -n "$qemu_pid"
|
if test $commandcompleted -eq 0 -a -n "$qemu_pid"
|
||||||
then
|
then
|
||||||
echo Grace period for qemu job at pid $qemu_pid
|
echo Grace period for qemu job at pid $qemu_pid
|
||||||
|
oldline="`tail $resdir/console.log`"
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null`
|
kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null`
|
||||||
|
@ -238,13 +239,29 @@ then
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
if test $kruntime -ge $((seconds + $TORTURE_SHUTDOWN_GRACE))
|
must_continue=no
|
||||||
|
newline="`tail $resdir/console.log`"
|
||||||
|
if test "$newline" != "$oldline" && echo $newline | grep -q ' [0-9]\+us : '
|
||||||
|
then
|
||||||
|
must_continue=yes
|
||||||
|
fi
|
||||||
|
last_ts="`tail $resdir/console.log | grep '^\[ *[0-9]\+\.[0-9]\+]' | tail -1 | sed -e 's/^\[ *//' -e 's/\..*$//'`"
|
||||||
|
if test -z "last_ts"
|
||||||
|
then
|
||||||
|
last_ts=0
|
||||||
|
fi
|
||||||
|
if test "$newline" != "$oldline" -a "$last_ts" -lt $((seconds + $TORTURE_SHUTDOWN_GRACE))
|
||||||
|
then
|
||||||
|
must_continue=yes
|
||||||
|
fi
|
||||||
|
if test $must_continue = no -a $kruntime -ge $((seconds + $TORTURE_SHUTDOWN_GRACE))
|
||||||
then
|
then
|
||||||
echo "!!! PID $qemu_pid hung at $kruntime vs. $seconds seconds" >> $resdir/Warnings 2>&1
|
echo "!!! PID $qemu_pid hung at $kruntime vs. $seconds seconds" >> $resdir/Warnings 2>&1
|
||||||
kill -KILL $qemu_pid
|
kill -KILL $qemu_pid
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 1
|
oldline=$newline
|
||||||
|
sleep 10
|
||||||
done
|
done
|
||||||
elif test -z "$qemu_pid"
|
elif test -z "$qemu_pid"
|
||||||
then
|
then
|
||||||
|
|
Загрузка…
Ссылка в новой задаче