Commit | Line | Data |
---|---|---|
1a5e31fb | 1 | #!/bin/bash |
c87b9c60 PM |
2 | # |
3 | # Check the console output from an rcutorture run for oopses. | |
4 | # The "file" is a pathname on the local system, and "title" is | |
5 | # a text string for error-message purposes. | |
6 | # | |
3327d924 | 7 | # Usage: parse-console.sh file title |
c87b9c60 PM |
8 | # |
9 | # This program is free software; you can redistribute it and/or modify | |
10 | # it under the terms of the GNU General Public License as published by | |
11 | # the Free Software Foundation; either version 2 of the License, or | |
12 | # (at your option) any later version. | |
13 | # | |
14 | # This program is distributed in the hope that it will be useful, | |
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | # GNU General Public License for more details. | |
18 | # | |
19 | # You should have received a copy of the GNU General Public License | |
0e342a87 PM |
20 | # along with this program; if not, you can access it online at |
21 | # http://www.gnu.org/licenses/gpl-2.0.html. | |
c87b9c60 PM |
22 | # |
23 | # Copyright (C) IBM Corporation, 2011 | |
24 | # | |
25 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | |
26 | ||
c87b9c60 PM |
27 | file="$1" |
28 | title="$2" | |
29 | ||
6d40cc0c PM |
30 | . functions.sh |
31 | ||
bc51896d PM |
32 | if grep -Pq '\x00' < $file |
33 | then | |
34 | print_warning Console output contains nul bytes, old qemu still running? | |
35 | fi | |
5d43edb4 | 36 | egrep 'Badness|WARNING:|Warn|BUG|===========|Call Trace:|Oops:|detected stalls on CPUs/tasks:|self-detected stall on CPU|Stall ended before state dump start|\?\?\? Writer stall state' < $file | grep -v 'ODEBUG: ' | grep -v 'Warning: unable to open an initial console' > $1.diags |
5708c647 | 37 | if test -s $1.diags |
c87b9c60 | 38 | then |
6d40cc0c | 39 | print_warning Assertion failure in $file $title |
5708c647 PM |
40 | # cat $1.diags |
41 | summary="" | |
42 | n_badness=`grep -c Badness $1` | |
43 | if test "$n_badness" -ne 0 | |
44 | then | |
45 | summary="$summary Badness: $n_badness" | |
46 | fi | |
47 | n_warn=`grep -v 'Warning: unable to open an initial console' $1 | egrep -c 'WARNING:|Warn'` | |
48 | if test "$n_warn" -ne 0 | |
49 | then | |
50 | summary="$summary Warnings: $n_warn" | |
51 | fi | |
52 | n_bugs=`egrep -c 'BUG|Oops:' $1` | |
53 | if test "$n_bugs" -ne 0 | |
54 | then | |
55 | summary="$summary Bugs: $n_bugs" | |
56 | fi | |
57 | n_calltrace=`grep -c 'Call Trace:' $1` | |
58 | if test "$n_calltrace" -ne 0 | |
59 | then | |
60 | summary="$summary Call Traces: $n_calltrace" | |
61 | fi | |
62 | n_lockdep=`grep -c =========== $1` | |
63 | if test "$n_badness" -ne 0 | |
64 | then | |
65 | summary="$summary lockdep: $n_badness" | |
66 | fi | |
5d43edb4 | 67 | n_stalls=`egrep -c 'detected stalls on CPUs/tasks:|self-detected stall on CPU|Stall ended before state dump start|\?\?\? Writer stall state' $1` |
5708c647 PM |
68 | if test "$n_stalls" -ne 0 |
69 | then | |
70 | summary="$summary Stalls: $n_stalls" | |
71 | fi | |
72 | print_warning Summary: $summary | |
fc91cbab PM |
73 | else |
74 | rm $1.diags | |
c87b9c60 | 75 | fi |