]> rtime.felk.cvut.cz Git - can-benchmark.git/commitdiff
Merge branch 'master' of rtime.felk.cvut.cz:/can-benchmark
authorMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 3 Dec 2010 22:33:39 +0000 (23:33 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 3 Dec 2010 22:33:39 +0000 (23:33 +0100)
gw-tests/filter-sff.sh
gw-tests/filter.sh
gw-tests/lib.sh
gw-tests/mod.sh
gw-tests/nop-highprio.sh
gw-tests/nop.sh
gw-tests/pc.sh
gw-tests/user.sh
gw-tests/vcan.sh
gw-tests/vcans.sh
latester/latester.c

index a32ea021608a56495bbc3ea5bc7edbabaa674b7c..ce86ffeb066f27ddf5c4d4b769e0ec9dc0fd35e0 100755 (executable)
@@ -7,7 +7,7 @@ ids="0 $(seq 255 256 2047)"
 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
 }
 
index 183ab1b8c7e6f451f4c5cb1979337b7a6c3a1927..5810dc58784c4eef767c4eba37a2eb443563302f 100755 (executable)
@@ -7,7 +7,7 @@ ids="0 $(seq 255 256 2047)"
 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
 }
 
index e0ab6445efc547d3c3f54c1f7e514e56de368f8e..c6bf93fac8ac2e3cd5ba2229c2954392ffb8187b 100644 (file)
@@ -5,6 +5,7 @@ while [ $# -gt 0 ]; do
        -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
 
@@ -70,6 +71,17 @@ echo_plot() {
     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)
index 8abf53dbf0b260004ca463f5f061bc4f87f7dfb7..9e55168d45b496d37034f707b7ee39dd463dfdb2 100755 (executable)
@@ -2,7 +2,7 @@
 
 . 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
index a10aa2cdd55a403e13af54102cced50392cb36bb..27f0c8fef9f8753db13ad73843f18c1b0f3afaac 100755 (executable)
@@ -8,10 +8,10 @@ main() {
     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() {
index e6465188f6311aca9af5a6a1e84b17f5c7d9bc7a..cbdb342b1db22883ea804ee48b6f65823b878be6 100755 (executable)
@@ -4,10 +4,10 @@
 
 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() {
index 06601fcf3ead32342581559e5f703dadfa05feea..ad7ea51bc195477fe4fe807ff5d4bfe41c8ed503 100755 (executable)
@@ -3,10 +3,10 @@
 . 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() {
index 1edfa7438dd15b55ca0aa37a1c137a3bc90dc325..6f6269c99841b3cce27a3afedb02d995df3f0d6b 100755 (executable)
@@ -4,12 +4,12 @@
 
 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() {
index a96cac4ed6a9c2a2b122947ef93c286f0372d6d6..a9552808626a6ad9b16befef9b6f542e9ad6e78e 100755 (executable)
@@ -14,7 +14,7 @@ main() {
        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
 }
index 6c3cada2f0d58fe4125e603b985820cf7012a0ac..70ac60f56ec8804a1034a037afa4c23812effbdd 100755 (executable)
@@ -15,7 +15,7 @@ main() {
        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
 }
 
index d178e1eb907f990b43b331ce86d06ab2fd88b0e2..c980f247ac9841b3aa4755aa3966880c2550865e 100644 (file)
@@ -74,6 +74,7 @@ struct options opt = {
 
 struct {
        unsigned enobufs;
+       unsigned overrun;
 } stats;
 
 int num_interfaces = 0;
@@ -401,7 +402,10 @@ static inline void get_next_timeout(struct timespec *timeout)
                        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;
@@ -751,5 +755,10 @@ int main(int argc, const char *argv[])
        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;
 }