~ [ 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 ] ~

Diff markup

Differences between /tools/testing/selftests/rcutorture/bin/kvm-recheck-rcuscale.sh (Architecture i386) and /tools/testing/selftests/rcutorture/bin/kvm-recheck-rcuscale.sh (Architecture sparc64)


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