#!/bin/bash
#
# Analyze a given results directory for rcutorture progress.
#
# Usage: kvm-recheck-rcu.sh resdir
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, you can access it online at
# http://www.gnu.org/licenses/gpl-2.0.html.
#
# Copyright (C) IBM Corporation, 2014
#
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

i="$1"
if test -d $i
then
	:
else
	echo Unreadable results directory: $i
	exit 1
fi
. tools/testing/selftests/rcutorture/bin/functions.sh

configfile=`echo $i | sed -e 's/^.*\///'`
ngps=`grep ver: $i/console.log 2> /dev/null | tail -1 | sed -e 's/^.* ver: //' -e 's/ .*$//'`
if test -z "$ngps"
then
	echo "$configfile -------"
else
	title="$configfile ------- $ngps grace periods"
	dur=`sed -e 's/^.* rcutorture.shutdown_secs=//' -e 's/ .*$//' < $i/qemu-cmd 2> /dev/null`
	if test -z "$dur"
	then
		:
	else
		ngpsps=`awk -v ngps=$ngps -v dur=$dur '
			BEGIN { print ngps / dur }' < /dev/null`
		title="$title ($ngpsps per second)"
	fi
	echo $title
	nclosecalls=`grep --binary-files=text 'torture: Reader Batch' $i/console.log | tail -1 | awk '{for (i=NF-8;i<=NF;i++) sum+=$i; } END {print sum}'`
	if test -z "$nclosecalls"
	then
		exit 0
	fi
	if test "$nclosecalls" -eq 0
	then
		exit 0
	fi
	# Compute number of close calls per tenth of an hour
	nclosecalls10=`awk -v nclosecalls=$nclosecalls -v dur=$dur 'BEGIN { print int(nclosecalls * 36000 / dur) }' < /dev/null`
	if test $nclosecalls10 -gt 5 -a $nclosecalls -gt 1
	then
		print_bug $nclosecalls "Reader Batch close calls in" $(($dur/60)) minute run: $i
	else
		print_warning $nclosecalls "Reader Batch close calls in" $(($dur/60)) minute run: $i
	fi
fi
</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/include/net/ieee802154_netdev.h'>
<input type='hidden' name='id' value='095cbe66973771fecd8e8b1e8763181363ef703e'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/commit/?id=095cbe66973771fecd8e8b1e8763181363ef703e'>root</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include?id=095cbe66973771fecd8e8b1e8763181363ef703e'>include</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include/net?id=095cbe66973771fecd8e8b1e8763181363ef703e'>net</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include/net/ieee802154_netdev.h?id=095cbe66973771fecd8e8b1e8763181363ef703e'>ieee802154_netdev.h</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='id' value='095cbe66973771fecd8e8b1e8763181363ef703e'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</td><td class='right'>2017-01-22 12:47:48 -0800</td></tr>
<tr><th>committer</th><td>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</td><td class='right'>2017-01-22 12:47:48 -0800</td></tr>
<tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/net/ieee802154_netdev.h?id=095cbe66973771fecd8e8b1e8763181363ef703e'>095cbe66973771fecd8e8b1e8763181363ef703e</a> (<a href='/cgit.cgi/linux/net-next.git/patch/include/net/ieee802154_netdev.h?id=095cbe66973771fecd8e8b1e8763181363ef703e'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?id=095cbe66973771fecd8e8b1e8763181363ef703e'>c361a93d62ed171ac958deb0d4ff0faa980bb290</a> /<a href='/cgit.cgi/linux/net-next.git/tree/include/net/ieee802154_netdev.h?id=095cbe66973771fecd8e8b1e8763181363ef703e'>include/net/ieee802154_netdev.h</a></td></tr>
<tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/net/ieee802154_netdev.h?id=24b86839fab8e8059d2b16e0067dc86a1a0d3514'>24b86839fab8e8059d2b16e0067dc86a1a0d3514</a> (<a href='/cgit.cgi/linux/net-next.git/diff/include/net/ieee802154_netdev.h?id=095cbe66973771fecd8e8b1e8763181363ef703e&amp;id2=24b86839fab8e8059d2b16e0067dc86a1a0d3514'>diff</a>)</td></tr><tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/net/ieee802154_netdev.h?id=020eb3daaba2857b32c4cf4c82f503d6a00a67de'>020eb3daaba2857b32c4cf4c82f503d6a00a67de</a> (<a href='/cgit.cgi/linux/net-next.git/diff/include/net/ieee802154_netdev.h?id=095cbe66973771fecd8e8b1e8763181363ef703e&amp;id2=020eb3daaba2857b32c4cf4c82f503d6a00a67de'>diff</a>)</td></tr></table>
<div class='commit-subject'>Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</div><div class='commit-msg'>Pull x86 fix from Thomas Gleixner:
 "Restore the retrigger callbacks in the IO APIC irq chips. That
  addresses a long standing regression which got introduced with the
  rewrite of the x86 irq subsystem two years ago and went unnoticed so
  far"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/ioapic: Restore IO-APIC irq_chip retrigger callback
</div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?id=095cbe66973771fecd8e8b1e8763181363ef703e'>Diffstat</a> (limited to 'include/net/ieee802154_netdev.h')</div><table summary='diffstat' class='diffstat'>