1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0+ 3 # 4 # Analyze a given results directory for refscale performance measurements. 5 # 6 # Usage: kvm-recheck-refscale.sh resdir 7 # 8 # Copyright (C) IBM Corporation, 2016 9 # 10 # Authors: Paul E. McKenney <paulmck@linux.ibm.com> 11 12 i="$1" 13 if test -d "$i" -a -r "$i" 14 then 15 : 16 else 17 echo Unreadable results directory: $i 18 exit 1 19 fi 20 PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH 21 . functions.sh 22 23 configfile=`echo $i | sed -e 's/^.*\///'` 24 25 sed -e 's/^\[[^]]*]//' < $i/console.log | tr -d '\015' | 26 awk -v configfile="$configfile" ' 27 /^[ ]*Runs Time\(ns\) *$/ { 28 if (dataphase + 0 == 0) { 29 dataphase = 1; 30 # print configfile, $0; 31 } 32 next; 33 } 34 35 /[^ ]*[0-9][0-9]* [0-9][0-9]*\.[0-9][0-9]*$/ { 36 if (dataphase == 1) { 37 # print $0; 38 readertimes[++n] = $2; 39 sum += $2; 40 } 41 next; 42 } 43 44 { 45 if (dataphase == 1) 46 dataphase == 2; 47 next; 48 } 49 50 END { 51 print configfile " results:"; 52 newNR = asort(readertimes); 53 if (newNR <= 0) { 54 print "No refscale records found???" 55 exit; 56 } 57 medianidx = int(newNR / 2); 58 if (newNR == medianidx * 2) 59 medianvalue = (readertimes[medianidx - 1] + readertimes[medianidx]) / 2; 60 else 61 medianvalue = readertimes[medianidx]; 62 points = "Points:"; 63 for (i = 1; i <= newNR; i++) 64 points = points " " readertimes[i]; 65 print points; 66 print "Average reader duration: " sum / newNR " nanoseconds"; 67 print "Minimum reader duration: " readertimes[1]; 68 print "Median reader duration: " medianvalue; 69 print "Maximum reader duration: " readertimes[newNR]; 70 print "Computed from refscale printk output."; 71 }'
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.