1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0+ 3 4 usage() { 5 echo Extract any RCU CPU stall warnings present in specified file. 6 echo Filter out clocksource lines. Note that preceding-lines excludes the 7 echo initial line of the stall warning but trailing-lines includes it. 8 echo 9 echo Usage: $(basename $0) dmesg-file [ preceding-lines [ trailing-lines ] ] 10 echo 11 echo Error: $1 12 } 13 14 # Terminate the script, if the argument is missing 15 16 if test -f "$1" && test -r "$1" 17 then 18 : 19 else 20 usage "Console log file \"$1\" missing or unreadable." 21 exit 1 22 fi 23 24 echo $1 25 preceding_lines="${2-3}" 26 trailing_lines="${3-10}" 27 28 awk -v preceding_lines="$preceding_lines" -v trailing_lines="$trailing_lines" ' 29 suffix <= 0 { 30 for (i = preceding_lines; i > 0; i--) 31 last[i] = last[i - 1]; 32 last[0] = $0; 33 } 34 35 suffix > 0 { 36 print $0; 37 suffix--; 38 if (suffix <= 0) 39 print ""; 40 } 41 42 suffix <= 0 && /detected stall/ { 43 for (i = preceding_lines; i >= 0; i--) 44 if (last[i] != "") 45 print last[i]; 46 suffix = trailing_lines; 47 }' < "$1" | tr -d '\015' | grep -v clocksource 48
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.