~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/rcutorture/bin/kvm-recheck-rcuscale.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0+
  3 #
  4 # Analyze a given results directory for rcuscale scalability measurements.
  5 #
  6 # Usage: kvm-recheck-rcuscale.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 if kvm-recheck-rcuscale-ftrace.sh $i
 24 then
 25         # ftrace data was successfully analyzed, call it good!
 26         exit 0
 27 fi
 28 
 29 configfile=`echo $i | sed -e 's/^.*\///'`
 30 
 31 sed -e 's/^\[[^]]*]//' < $i/console.log |
 32 awk '
 33 /-scale: .* gps: .* batches:/ {
 34         ngps = $9;
 35         nbatches = 1;
 36 }
 37 
 38 /-scale: .*writer-duration/ {
 39         gptimes[++n] = $5 / 1000.;
 40         sum += $5 / 1000.;
 41 }
 42 
 43 /rcu_scale: Grace-period kthread CPU time/ {
 44         cputime = $6;
 45 }
 46 
 47 END {
 48         newNR = asort(gptimes);
 49         if (newNR <= 0) {
 50                 print "No rcuscale records found???"
 51                 exit;
 52         }
 53         pct50 = int(newNR * 50 / 100);
 54         if (pct50 < 1)
 55                 pct50 = 1;
 56         pct90 = int(newNR * 90 / 100);
 57         if (pct90 < 1)
 58                 pct90 = 1;
 59         pct99 = int(newNR * 99 / 100);
 60         if (pct99 < 1)
 61                 pct99 = 1;
 62         div = 10 ** int(log(gptimes[pct90]) / log(10) + .5) / 100;
 63         print "Histogram bucket size: " div;
 64         last = gptimes[1] - 10;
 65         count = 0;
 66         for (i = 1; i <= newNR; i++) {
 67                 current = div * int(gptimes[i] / div);
 68                 if (last == current) {
 69                         count++;
 70                 } else {
 71                         if (count > 0)
 72                                 print last, count;
 73                         count = 1;
 74                         last = current;
 75                 }
 76         }
 77         if (count > 0)
 78                 print last, count;
 79         print "Average grace-period duration: " sum / newNR " microseconds";
 80         print "Minimum grace-period duration: " gptimes[1];
 81         print "50th percentile grace-period duration: " gptimes[pct50];
 82         print "90th percentile grace-period duration: " gptimes[pct90];
 83         print "99th percentile grace-period duration: " gptimes[pct99];
 84         print "Maximum grace-period duration: " gptimes[newNR];
 85         if (cputime != "")
 86                 cpustr = " CPU: " cputime;
 87         print "Grace periods: " ngps + 0 " Batches: " nbatches + 0 " Ratio: " ngps / nbatches cpustr;
 88         print "Computed from rcuscale printk output.";
 89 }'

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php