summaryrefslogtreecommitdiffstats
path: root/utilities
diff options
context:
space:
mode:
authorAkira Yokosawa <akiyks@gmail.com>2019-01-16 23:03:58 +0900
committerPaul E. McKenney <paulmck@linux.ibm.com>2019-01-16 08:55:34 -0800
commit6c016e9ce2f74bb5247e3c77626d1c75a267ff52 (patch)
tree1809bca7ea00ee8ab8690d0046e90a5c53c9daeb /utilities
parentf5f3c10d6c2ecbee420e8bc25c87d8808198c190 (diff)
downloadperfbook-6c016e9ce2f74bb5247e3c77626d1c75a267ff52.tar.gz
debugging: Employ new scheme for code snippets
In sh/awk code, it is not possible to put inline comments on lines ending with "\". To avoid continuations, shorten variable names in datablows.sh. As source files of snippets are searched under CodeSamples/, put a symbolic link to utilities/datablows.sh under CodeSamples/debugging. "grep -r" doesn't follow symbolic links, so use the "-R" option instead. Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Diffstat (limited to 'utilities')
-rw-r--r--utilities/datablows.sh60
-rwxr-xr-xutilities/gen_snippet_d.pl4
2 files changed, 33 insertions, 31 deletions
diff --git a/utilities/datablows.sh b/utilities/datablows.sh
index 83d86d76..c4060c27 100644
--- a/utilities/datablows.sh
+++ b/utilities/datablows.sh
@@ -34,49 +34,50 @@
#
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-divisor=3
-relerr=0.01
-trendbreak=10
-while test $# -gt 0
+#\begin{snippet}[labelbase=ln:debugging:datablows:whole,commandchars=\!\@\%]
+div=3 #\lnlbl{param:b}
+rel=0.01
+tre=10 #\lnlbl{param:e}
+while test $# -gt 0 #\lnlbl{parse:b}
do
case "$1" in
--divisor)
shift
- divisor=$1
+ div=$1
;;
--relerr)
shift
- relerr=$1
+ rel=$1
;;
--trendbreak)
shift
- trendbreak=$1
+ tre=$1
;;
esac
shift
-done
-# echo divisor: $divisor relerr: $relerr trendbreak: $trendbreak
+done #\lnlbl{parse:e}
+# echo divisor: $div relerr: $rel trendbreak: $tre #\fcvexclude
-awk -v divisor=$divisor -v relerr=$relerr -v trendbreak=$trendbreak '{
- for (i = 2; i <= NF; i++)
- d[i - 1] = $i;
- asort(d);
- i = int((NF + divisor - 1) / divisor);
- delta = d[i] - d[1];
- maxdelta = delta * divisor;
- maxdelta1 = delta + d[i] * relerr;
- if (maxdelta1 > maxdelta)
- maxdelta = maxdelta1;
- for (j = i + 1; j < NF; j++) {
- if (j <= 2)
+awk -v divisor=$div -v relerr=$rel -v trendbreak=$tre '{#\lnlbl{awk:invoke}
+ for (i = 2; i <= NF; i++) #\lnlbl{awk:copy:b}
+ d[i - 1] = $i; #\lnlbl{awk:copy:e}
+ asort(d); #\lnlbl{awk:asort}
+ i = int((NF + divisor - 1) / divisor); #\lnlbl{awk:comp_i}
+ delta = d[i] - d[1]; #\lnlbl{awk:delta}
+ maxdelta = delta * divisor; #\lnlbl{awk:maxdelta}
+ maxdelta1 = delta + d[i] * relerr; #\lnlbl{awk:maxdelta1}
+ if (maxdelta1 > maxdelta) #\lnlbl{awk:comp_max:b}
+ maxdelta = maxdelta1; #\lnlbl{awk:comp_max:e}
+ for (j = i + 1; j < NF; j++) { #\lnlbl{awk:add:b}
+ if (j <= 2) #\lnlbl{awk:chk_engh}
maxdiff = d[NF - 1] - d[1];
else
- maxdiff = trendbreak * (d[j - 1] - d[1]) / (j - 2);
-# print "i: " i, "j: " j, "maxdelta: " maxdelta, "maxdiff: " maxdiff, "d[j] - d[j - 1]: " d[j] - d[j - 1]
- if (d[j] - d[1] > maxdelta && d[j] - d[j - 1] > maxdiff)
- break;
- }
- n = sum = 0;
+ maxdiff = trendbreak * (d[j - 1] - d[1]) / (j - 2); #\lnlbl{awk:mul_avr}
+# print "i: " i, "j: " j, "maxdelta: " maxdelta, "maxdiff: " maxdiff, "d[j] - d[j - 1]: " d[j] - d[j - 1] #\fcvexclude
+ if (d[j] - d[1] > maxdelta && d[j] - d[j - 1] > maxdiff) #\lnlbl{awk:chk_max}
+ break; #\lnlbl{awk:break}
+ } #\lnlbl{awk:add:e}
+ n = sum = 0; #\lnlbl{awk:comp_stat:b}
for (k = 1; k < j; k++) {
sum += d[k];
n++;
@@ -84,5 +85,6 @@ awk -v divisor=$divisor -v relerr=$relerr -v trendbreak=$trendbreak '{
min = d[1];
max = d[j - 1];
avg = sum / n;
- print $1, avg, min, max, n, NF - 1;
-}'
+ print $1, avg, min, max, n, NF - 1; #\lnlbl{awk:comp_stat:e}
+}' #\lnlbl{awk:end}
+#\end{snippet}
diff --git a/utilities/gen_snippet_d.pl b/utilities/gen_snippet_d.pl
index e07e58d5..580e5cab 100755
--- a/utilities/gen_snippet_d.pl
+++ b/utilities/gen_snippet_d.pl
@@ -23,9 +23,9 @@ my $re;
$snippet_key = '\begin{snippet}' ;
$snippet_key_ltms = '\begin[snippet]' ;
@ignore_re = ('\.swp$', '~$', '\#$') ; # to ignore backup of vim and emacs
-@fcvsources = `grep -l -r -F '$snippet_key' CodeSamples` ;
+@fcvsources = `grep -l -R -F '$snippet_key' CodeSamples` ;
@fcvsources = grep { not /\.ltms$/ } @fcvsources ;
-@fcvsources_ltms = `grep -l -r -F '$snippet_key_ltms' CodeSamples` ;
+@fcvsources_ltms = `grep -l -R -F '$snippet_key_ltms' CodeSamples` ;
foreach $re (@ignore_re) {
@fcvsources = grep { not /$re/ } @fcvsources ;
@fcvsources_ltms = grep { not /$re/ } @fcvsources_ltms ;