+# termsize 7cm,7cm
set grid
-set xlabel "Number of messages"
-set ylabel "Time [{/Symbol m}s]"
+set xlabel "Frames [×1000]"
+set ylabel "Time [ms]"
set key left reverse Left
fit a1*x+b1 "data" using 1:2 via a1, b1
fit a2*x+b2 "data" using 1:4 via a2, b2
-plot 'data' using 1:2 pt 7 ps 0.2 title 'read()', \
- 'data' using 1:4 pt 7 ps 0.2 title 'recvmmsg()', \
- a1*x+b1 with lines lt 1 lc 1 lw 1 title "Linear fit for read()", \
- a2*x+b2 with lines lt 1 lc 2 lw 1 title "Linear fit for recvmmsg()"
+set yrange [0:]
+
+b1=b1/1000
+b2=b2/1000
+
+plot 'data' using ($1/1000):($2/1000) title 'read()', \
+ 'data' using ($1/1000):($4/1000) title 'recvmmsg()', \
+ a1*x+b1 with lines lt 1 lc rgbcolor "#aa0000" lw 5 title "", \
+ a2*x+b2 with lines lt 1 lc rgbcolor "#00aa00" lw 5 title ""
# a1*x+b1 - a2*x-b2 = 0
# (a1-a2)*x = b2-b1
#./ppc/boot
-ssh glab "latester -d can0 -d can1 -d can2 --oneattime -c 1000 -q -n ugw"
+ssh glab "latester -d can0 -d can1 -d can2 -c 10000 -n ugw -p 60 -v"
scp glab:ugw-hist.txt .
gnuplot <<'EOF'
args=--oneattime
dir=oneatatime
;;
+ -ftrace)
+ args=--oneattime
+ dir=oneatatime.ftrace
+ ;;
-p*)
args=$1
dir=${1#-p}
--- /dev/null
+#!/usr/bin/env gnuplot
+
+set xlabel "GW implementation"
+set ylabel "GW latency [µs]"
+set style data histogram
+set style histogram
+set style fill solid border -1
+set boxwidth 0.9
+set key left Left reverse
+set grid
+set xtics rotate by -20
+set style histogram errorbars gap 1 lw 1
+
+plot 'oneatatime/result' using 3:2:4:xtic(1) title "no ftrace", \
+ 'oneatatime.ftrace/result' using 3:2:4:xtic(1) lc 1 lt 1 fill pattern 2 title "ftrace compiled in"
--- /dev/null
+#!/usr/bin/env gnuplot
+set title "Detail of the above"
+set xlabel "Frame period [µs]"
+set ylabel "Latency [µs] + packet loss"
+set style data yerrorlines
+# set yrange [0:10000]
+set yrange [0:500]
+#set logscale y
+# set key left Left reverse
+set grid
+loss_scale=10
+plot \
+ 'kernel.dat' using 1:2:($3*loss_scale) title 'kernel', \
+ 'mmapbusy-mmap.dat' using 1:2:($3*loss_scale) title 'mmapbusy-mmap', \
+ 'mmapbusy-write.dat' using 1:2:($3*loss_scale) title 'mmapbusy-write', \
+ 'mmap-mmap.dat' using 1:2:($3*loss_scale) title 'mmap-mmap', \
+ 'mmap-write.dat' using 1:2:($3*loss_scale) title 'mmap-write'
+# 'readbusy-write.dat' using 1:2:($3*loss_scale) title 'readbusy-write', \
+# 'readnb-write.dat' using 1:2:($3*loss_scale) title 'readnb-write', \
+# 'read-write.dat' using 1:2:($3*loss_scale) title 'read-write'
--- /dev/null
+#!/usr/bin/env gnuplot
+reset
+set xlabel "Frame period [µs]"
+set ylabel "Latency [µs] + packet loss"
+set style data yerrorlines
+# set yrange [0:10000]
+set yrange [0:]
+#set logscale y
+# set key left Left reverse
+set grid
+loss_scale=10
+plot \
+ 'kernel.dat' using 1:2:($3*loss_scale) title 'kernel', \
+ 'mmapbusy-mmap.dat' using 1:2:($3*loss_scale) title 'mmapbusy-mmap', \
+ 'mmapbusy-write.dat' using 1:2:($3*loss_scale) title 'mmapbusy-write', \
+ 'mmap-mmap.dat' using 1:2:($3*loss_scale) title 'mmap-mmap', \
+ 'mmap-write.dat' using 1:2:($3*loss_scale) title 'mmap-write', \
+ 'readbusy-write.dat' using 1:2:($3*loss_scale) title 'readbusy-write', \
+ 'readnb-write.dat' using 1:2:($3*loss_scale) title 'readnb-write', \
+ 'read-write.dat' using 1:2:($3*loss_scale) title 'read-write'
system("make")
-set xlabel "Method"
+set xlabel "GW implementation"
set ylabel "GW latency [µs]"
set y2tics
set y2label "Lost frames"
datafiles = {
"rtems.dat"
"kernel.dat"
- "readnb-write.dat"
- "mmapbusy-write.dat"
"mmapbusy-mmap.dat"
+ "mmapbusy-write.dat"
+ "readnb-write.dat"
"readbusy-write.dat"
"read-write.dat"
"mmap-write.dat"
quantiles = [0 0.5 0.90 0.99];
-mat = zeros(0, length(quantiles) + 1);
+mat = zeros(0, length(quantiles) + 2);
names = {};
for i=1:length(argv),
lost = stat{6,2};
q = quantile (x, quantiles);
q = max(q, 0)';
- mat = [ mat; q lost ];
+ avg = mean(x);
+ mat = [ mat; q lost avg ];
names{i} = n;
end
--- /dev/null
+#!/bin/bash
+
+
+titles=$(awk '{print $1}' 150/result)
+
+for t in $titles; do
+ exec > $t.dat
+ for i in $(seq 125 5 170); do
+ echo "$i $(awk "/$t/ { print \$3, \$6 }" $i/result)"
+ done
+done