Paul E. McKenney | 2193e16 | 2014-02-07 15:16:25 -0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Analyze a given results directory for rcutorture progress. |
| 4 | # |
Pranith Kumar | 3327d92 | 2014-07-11 19:47:35 -0400 | [diff] [blame] | 5 | # Usage: kvm-recheck-rcu.sh resdir |
Paul E. McKenney | 2193e16 | 2014-02-07 15:16:25 -0800 | [diff] [blame] | 6 | # |
| 7 | # This program is free software; you can redistribute it and/or modify |
| 8 | # it under the terms of the GNU General Public License as published by |
| 9 | # the Free Software Foundation; either version 2 of the License, or |
| 10 | # (at your option) any later version. |
| 11 | # |
| 12 | # This program is distributed in the hope that it will be useful, |
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 | # GNU General Public License for more details. |
| 16 | # |
| 17 | # You should have received a copy of the GNU General Public License |
| 18 | # along with this program; if not, you can access it online at |
| 19 | # http://www.gnu.org/licenses/gpl-2.0.html. |
| 20 | # |
| 21 | # Copyright (C) IBM Corporation, 2014 |
| 22 | # |
| 23 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
| 24 | |
| 25 | i="$1" |
SeongJae Park | 81394e3 | 2017-11-03 19:17:25 +0900 | [diff] [blame^] | 26 | if test -d "$i" -a -r "$i" |
Paul E. McKenney | 2193e16 | 2014-02-07 15:16:25 -0800 | [diff] [blame] | 27 | then |
| 28 | : |
| 29 | else |
| 30 | echo Unreadable results directory: $i |
| 31 | exit 1 |
| 32 | fi |
Paul E. McKenney | 79619cf | 2014-11-17 10:12:27 -0800 | [diff] [blame] | 33 | . tools/testing/selftests/rcutorture/bin/functions.sh |
Paul E. McKenney | 2193e16 | 2014-02-07 15:16:25 -0800 | [diff] [blame] | 34 | |
| 35 | configfile=`echo $i | sed -e 's/^.*\///'` |
| 36 | ngps=`grep ver: $i/console.log 2> /dev/null | tail -1 | sed -e 's/^.* ver: //' -e 's/ .*$//'` |
| 37 | if test -z "$ngps" |
| 38 | then |
Paul E. McKenney | 9eb97fe | 2014-03-17 13:42:33 -0700 | [diff] [blame] | 39 | echo "$configfile -------" |
Paul E. McKenney | 2193e16 | 2014-02-07 15:16:25 -0800 | [diff] [blame] | 40 | else |
| 41 | title="$configfile ------- $ngps grace periods" |
| 42 | dur=`sed -e 's/^.* rcutorture.shutdown_secs=//' -e 's/ .*$//' < $i/qemu-cmd 2> /dev/null` |
| 43 | if test -z "$dur" |
| 44 | then |
| 45 | : |
| 46 | else |
| 47 | ngpsps=`awk -v ngps=$ngps -v dur=$dur ' |
| 48 | BEGIN { print ngps / dur }' < /dev/null` |
| 49 | title="$title ($ngpsps per second)" |
| 50 | fi |
| 51 | echo $title |
Paul E. McKenney | 79619cf | 2014-11-17 10:12:27 -0800 | [diff] [blame] | 52 | 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}'` |
| 53 | if test -z "$nclosecalls" |
| 54 | then |
| 55 | exit 0 |
| 56 | fi |
| 57 | if test "$nclosecalls" -eq 0 |
| 58 | then |
| 59 | exit 0 |
| 60 | fi |
| 61 | # Compute number of close calls per tenth of an hour |
| 62 | nclosecalls10=`awk -v nclosecalls=$nclosecalls -v dur=$dur 'BEGIN { print int(nclosecalls * 36000 / dur) }' < /dev/null` |
| 63 | if test $nclosecalls10 -gt 5 -a $nclosecalls -gt 1 |
| 64 | then |
| 65 | print_bug $nclosecalls "Reader Batch close calls in" $(($dur/60)) minute run: $i |
| 66 | else |
| 67 | print_warning $nclosecalls "Reader Batch close calls in" $(($dur/60)) minute run: $i |
| 68 | fi |
Paul E. McKenney | 2193e16 | 2014-02-07 15:16:25 -0800 | [diff] [blame] | 69 | fi |