t() {
for i in norm boost; do
- ssh root@${SSH_CONNECTION%% *} 'ping -fs 64000 ${SSH_CONNECTION%% *}' &
- PID_PING=$!
- echo 0 1 > $DRIVER-$i-1000.dat
- if [ $i != "boost" ] || boost_irq_prio 90; then
- PID_S=`vca_canping -s 1 -b -R FF:$RTPRIO -d $CAN1`
- vca_canping -m 1 -R FF:$RTPRIO -v -g $DRIVER-$i -t 1 -d $CAN0 -w 2 -c $COUNT
- kill $PID_S
- fi
- kill $PID_PING
+ for budget in 300 1 1000; do
+ if [ $budget -eq 300 -o $DRIVER == "socketcan" ]; then
+ if [ $i != "boost" ] || boost_irq_prio 90; then
+ echo $budget > /proc/sys/net/core/netdev_budget
+ ssh root@${SSH_CONNECTION%% *} 'ping -fs 64000 ${SSH_CONNECTION%% *}' &
+ PID_PING=$!
+ echo 0 1 > $DRIVER-$i-$budget-1000.dat
+ PID_S=`vca_canping -s 1 -b -R FF:$RTPRIO -d $CAN1`
+ vca_canping -m 1 -R FF:$RTPRIO -v -g $DRIVER-$i-$budget -t 1 -d $CAN0 -w 2 -c $COUNT
+ kill $PID_S
+ kill $PID_PING
+ sleep 1 # Wait for remote buffers to become empty
+ fi
+ fi
+ done
done
}
set grid
set xlabel "Time [ms]"
set ylabel "Latency profile [messages]"
-plot [0:] "socketcan-norm-1000.dat" with lp lt 1 title "Socketcan",\
- "lincan-norm-1000.dat" with lp lt 2 title "Lincan",\
- "socketcan-boost-1000.dat" with lp lt 1 title "Socketcan boosted IRQ prio",\
- "lincan-boost-1000.dat" with lp lt 2 title "Lincan boosted IRQ prio"
+plot [0:] \
+ "socketcan-norm-300-1000.dat" with lp lt 1 title "Socketcan",\
+ "lincan-norm-300-1000.dat" with lp lt 2 title "Lincan",\
+ "socketcan-boost-300-1000.dat" with lp lt 1 title "Socketcan boosted IRQ prio",\
+ "lincan-boost-300-1000.dat" with lp lt 2 title "Lincan boosted IRQ prio",\
+ "socketcan-norm-1-1000.dat" with lp lt 1 title "Socketcan netdev\\\\_budget=1",\
+ "socketcan-boost-1-1000.dat" with lp lt 1 title "Socketcan boosted IRQ prio, netdev\\\\_budget=1",\
+ "socketcan-norm-1000-1000.dat" with lp lt 1 title "Socketcan, netdev\\\\_budget=1000",\
+ "socketcan-boost-1000-1000.dat" with lp lt 1 title "Socketcan boosted IRQ prio, netdev\\\\_budget=1000"
EOF
}