]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - ugw/data/bench-all.sh
We need more data
[can-benchmark.git] / ugw / data / bench-all.sh
index 3048da73c5063c6c53796c4be86df16d1f752103..78e560af82c08c7a760263cb9a1156ceacae4fe8 100755 (executable)
@@ -3,7 +3,7 @@
 set -e
 
 args=
-dir=burst
+dirs=burst
 d0=$(dirname $0)
 
 cd $d0
@@ -12,11 +12,18 @@ while [ "${1#-}" != "$1" ]; do
     case "$1" in
        -o)
            args=--oneattime
-           dir=oneatatime
+           dirs=oneatatime
            ;;
        -ftrace)
            args=--oneattime
-           dir=oneatatime.ftrace
+           dirs=oneatatime.ftrace
+           ;;
+       -p)
+           dirs=($(seq 120 160))
+           declare -a args
+           for i in ${!dirs[*]}; do
+               args[$i]=-p${dirs[$i]}
+           done
            ;;
        -p*)
            args=$1
@@ -26,28 +33,43 @@ while [ "${1#-}" != "$1" ]; do
     shift
 done
 
-methods=${@:-rtems kernel read-write readnb-write mmap-write mmap-mmap mmapbusy-write mmapbusy-mmap readbusy-write}
+methods=${@:-rtems kernel read-write readnb-write readnb-mmap read-mmap mmap-write mmap-mmap mmapbusy-write mmapbusy-mmap readbusy-write readbusynoirq-write}
 
+set -x
 for method in $methods; do
-    set -x
     case $method in
-       rtems) ../../rtems/gw/boot --expect '"]", sub { shift->send_slow(0.1, "startGW\n"); }' --exiton 'tasks started';;
+       rtems) ../../rtems/gw/boot --expect-raw '"]", sub { shift->send_slow(0.1, "startGW\n"); }' --exiton 'tasks started';;
        kernel)         ../ppc/boot -a kernelgw --exiton "Kernel GW started";;
        read-write)     ../ppc/boot             --exiton "UGW started";;
        readnb-write)   ../ppc/boot -a "ugw=|-n|" --exiton "UGW started";;
+       readnb-mmap)    ../ppc/boot -a "ugw=|-n -t mmap|" --exiton "UGW started";;
+       read-mmap)      ../ppc/boot -a "ugw=|-t mmap|" --exiton "UGW started";;
        mmap-write)     ../ppc/boot -a "ugw=|-r mmap|" --exiton "UGW started";;
        mmap-mmap)      ../ppc/boot -a "ugw=|-r mmap -t mmap|" --exiton "UGW started";;
        mmapbusy-write) ../ppc/boot -a "ugw=|-r mmapbusy|" --exiton "UGW started";;
        mmapbusy-mmap)  ../ppc/boot -a "ugw=|-r mmapbusy -t mmap|" --exiton "UGW started";;
        readbusy-write) ../ppc/boot -a "ugw=|-b 300|" --exiton "UGW started";;
+       readbusynoirq-write) ../ppc/boot -a "ugw=|-b 300|" --kernel uImage.noirq --exiton "UGW started";;
        *)
            echo >&2 "Unknown method '$method'";
            exit 1;
     esac
-    ssh glab "latester -d can0 -d can1 -d can2 -c 10000 -q -n $method $args"
-    mkdir -p $dir
-    scp glab:"$method-*.txt" $dir
-    (cd $dir && ln -sf ../Makefile ../plot.gp ../preprocess.m .)
     set +x
+    for i in ${!dirs[*]}; do
+       arg=${args[$i]}
+       dir=${dirs[$i]}
+       set -x
+       ssh glab "sudo ip l set eth0 down; sudo ~/bin/latester -d can0 -d can1 -d can2 -c 5000 -q -n $method $arg; r=\$?; sudo ip l set eth0 up; exit \$r"
+       mkdir -p $dir
+       scp glab:"$method-*.txt" $dir
+       (cd $dir && ln -sf ../Makefile ../plot.gp ../preprocess.m .)
+       set -x
+    done
     sleep 2 # Wait for cu at glab to die
 done
+
+if [ ${#dirs[*]} -gt 1 ]; then
+    for d in ${dirs[@]}; do
+       make -C $d
+    done
+fi