]>
Commit | Line | Data |
---|---|---|
2193e160 PM |
1 | #!/bin/bash |
2 | # | |
3 | # Analyze a given results directory for rcutorture progress. | |
4 | # | |
3327d924 | 5 | # Usage: kvm-recheck-rcu.sh resdir |
2193e160 PM |
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" | |
81394e3f | 26 | if test -d "$i" -a -r "$i" |
2193e160 PM |
27 | then |
28 | : | |
29 | else | |
30 | echo Unreadable results directory: $i | |
31 | exit 1 | |
32 | fi | |
feef2d28 | 33 | . functions.sh |
2193e160 PM |
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 | |
9eb97fe7 | 39 | echo "$configfile -------" |
2193e160 PM |
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 | |
79619cf5 PM |
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 | |
2193e160 | 69 | fi |