main() {
sshgw 'for i in `seq 0 2047`; do cangw -A -s can0 -d can1 -f $(printf %x $i):c00007ff; done'
for i in $ids; do
- latester -d can0 -d can1 -d can2 -o -c $COUNT -i $i -h hist-$i.dat -f time-$i.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT -i $i $(traffic_and_length 2) -h hist-$i.dat -f time-$i.dat
done
}
main() {
sshgw 'for i in `seq 0 2047`; do cangw -A -s can0 -d can1 -f $(printf %x $i):7ff; done'
for i in $ids; do
- latester -d can0 -d can1 -d can2 -o -c $COUNT -i $i -h hist-$i.dat -f time-$i.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT -i $i $(traffic_and_length 2) -h hist-$i.dat -f time-$i.dat
done
}
-P) OPT_PLOT_DISABLE=1; shift;;
-p) OPT_PLOT_ONLY=1; shift;;
-X|--no-x11-plot) OPT_NO_X11=1; shift;;
+ -t) OPT_TRAFFIC=$2; shift 2;;
esac
done
echo -n " " $plot
}
+traffic_and_length() {
+ local opts
+ case $OPT_TRAFFIC in
+ all) error "Bug in the test script - traffic cannot be 'all' here.";;
+ flood|100) opts='';;
+ 50) opts="-p $((2*(44+$1*8)))";;
+ *) opts="-o";;
+ esac
+ echo $opts -l $1
+}
+
_run() {
if [[ ! "$OPT_PLOT_ONLY" ]]; then
kernel_versions=$(sshgw uname -r)
. lib.sh
-LATESTER_OPTS="-d can0 -d can1 -d can2 -o -l 8 -c $COUNT"
+LATESTER_OPTS="-d can0 -d can1 -d can2 $(traffic_and_length 8) -c $COUNT"
main() {
sshgw cangw -A -s can0 -d can1
sshgw 'chrt -p -f 99 `pidof irq/146-can1` || :'
sshgw 'chrt -p -f 98 `pidof sirq-net-rx/0` || :'
sshgw 'chrt -p -f 98 `pidof sirq-net-tx/0` || :'
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 2 -h hist2.dat -f time2.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 4 -h hist4.dat -f time4.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 6 -h hist6.dat -f time6.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 8 -h hist8.dat -f time8.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 2) -h hist2.dat -f time2.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 4) -h hist4.dat -f time4.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 6) -h hist6.dat -f time6.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 8) -h hist8.dat -f time8.dat
}
plot_cmds() {
main() {
sshgw cangw -A -s can0 -d can1
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 2 -h hist2.dat -f time2.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 4 -h hist4.dat -f time4.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 6 -h hist6.dat -f time6.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 8 -h hist8.dat -f time8.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 2) -h hist2.dat -f time2.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 4) -h hist4.dat -f time4.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 6) -h hist6.dat -f time6.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 8) -h hist8.dat -f time8.dat
}
plot_cmds() {
. lib.sh
main() {
- latester -d can0 -d can1 -o -c $COUNT -l 2 -h hist2.dat -f time2.dat
- latester -d can0 -d can1 -o -c $COUNT -l 4 -h hist4.dat -f time4.dat
- latester -d can0 -d can1 -o -c $COUNT -l 6 -h hist6.dat -f time6.dat
- latester -d can0 -d can1 -o -c $COUNT -l 8 -h hist8.dat -f time8.dat
+ latester -d can0 -d can1 -c $COUNT $(traffic_and_length 2) -h hist2.dat -f time2.dat
+ latester -d can0 -d can1 -c $COUNT $(traffic_and_length 4) -h hist4.dat -f time4.dat
+ latester -d can0 -d can1 -c $COUNT $(traffic_and_length 6) -h hist6.dat -f time6.dat
+ latester -d can0 -d can1 -c $COUNT $(traffic_and_length 8) -h hist8.dat -f time8.dat
}
plot_cmds() {
main() {
pid=$(sshgw 'chrt -f 90 candump -s2 -b can1 can0 & echo $!')
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 2 -h uhist2.dat -f utime2.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 8 -h uhist8.dat -f utime8.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 2) -h uhist2.dat -f utime2.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 8) -h uhist8.dat -f utime8.dat
sshgw kill $pid
sshgw cangw -A -s can0 -d can1
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 2 -h khist2.dat -f ktime2.dat
- latester -d can0 -d can1 -d can2 -o -c $COUNT -l 8 -h khist8.dat -f ktime8.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 2) -h khist2.dat -f ktime2.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT $(traffic_and_length 8) -h khist8.dat -f ktime8.dat
}
plot_cmds() {
done
sshgw cangw -A -s vcan0 -d can1 -f $(printf %x:C00007FF $i)
- latester -d can0 -d can1 -d can2 -o -c $COUNT -i 0 -h hist-$i.dat -f time-$i.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT -i 0 -h hist-$i.dat -f time-$i.dat
done
sshgw ip link del dev vcan0
}
done
sshgw cangw -A -s $lastif -d can1 -f $(printf %x:C00007FF $((i-1)))
- latester -d can0 -d can1 -d can2 -o -c $COUNT -i 0 -h hist-$i.dat -f time-$i.dat
+ latester -d can0 -d can1 -d can2 -c $COUNT -i 0 $(traffic_and_length 2) -h hist-$i.dat -f time-$i.dat
done
}
struct {
unsigned enobufs;
+ unsigned overrun;
} stats;
int num_interfaces = 0;
last.tv_nsec -= 1000000000;
last.tv_sec++;
}
- timespec_subtract(timeout, &last, &now);
+ if (timespec_subtract(timeout, &last, &now) /* is negative */) {
+ stats.overrun++;
+ memset(timeout, 0, sizeof(*timeout));
+ }
} else if (opt.timeout_ms != 0) {
timeout->tv_sec = opt.timeout_ms/1000;
timeout->tv_nsec = (opt.timeout_ms%1000)*1000000;
if (opt.file)
fclose(opt.file);
+ if (stats.overrun)
+ printf("overrun=%d\n", stats.overrun);
+ if (stats.enobufs)
+ printf("enobufs=%d\n", stats.enobufs);
+
return 0;
}