]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - tests/_lib.sh
Generate smaller PNGs
[can-benchmark.git] / tests / _lib.sh
index a8f789f0e70322fa2be62d7c09bddad0e916f7ff..13916b811600568f5666e240181943b657a196a7 100644 (file)
@@ -1,6 +1,7 @@
 
 while [ $# -gt 0 ]; do
     case "$1" in
+       -P) OPT_PLOT_DISABLE=1; shift;;
        -p) OPT_PLOT_ONLY=1; shift;;
        -X|--no-x11-plot) OPT_NO_X11=1; shift;;
     esac
@@ -13,6 +14,7 @@ PATH=$PWD/../_compiled/bin/:$PATH
 
 RTPRIO=${RTPRIO:-60}
 COUNT=${COUNT:-10000}
+export CANPING_MS=1            # Generate plots in milliseconds
 
 boost_irq_prio() {
     local PRIO=${1:-50}
@@ -78,17 +80,35 @@ prepare_socketcan_virtual() {
 run_tests() {
     tests=${TESTS:-socketcan_hw lincan_hw}
     for tst in $tests; do
+       echo 300 > /proc/sys/net/core/netdev_budget
        boost_irq_prio 50 || true
        prepare_$tst
        echo "----------------------"
        t
+       echo 300 > /proc/sys/net/core/netdev_budget
     done
 }
 
+kvers() {
+    local cmdline=$(cat /proc/cmdline|sed -e 's/BOOT_IMAGE=[^ ]*//' \
+                                         -e 's/root=[^ ]*//' \
+                                         -e 's/ro//' \
+                                         -e 's/quiet//' \
+                                         -e 's/rootfstype=[^ ]*//' \
+                                         -e 's/elevator=[^ ]*//' \
+                                         -e 's/^ *//' \
+                                         -e 's/ *$//'|tr -s ' ' '_')
+    v=$(uname -r)
+    [ -n "$cmdline" ] && v="$v:$cmdline"
+    [ -n "$KVERS" ] && v=$KVERS
+    echo $v
+}
+
 plot() {
-    for i in "${!PLOT_CMD[@]}"; do
-       cmd="${PLOT_CMD[$i]}";
-       cmd=$(echo "$cmd" | sed -e "/set title/ s/[\"']\(.*\)[\"']/'\1 ($(uname -r), CPU\\\\@${clk}Mhz)'/")
+#    for i in "${!PLOT_CMD[@]}"; do
+    for i in 0; do
+       cmd=`p`                 # Get plot commands
+       cmd=$(echo "$cmd" | sed -e "/set title/ s/[\"']\(.*\)[\"']/\"\1\\\\n($(kvers), CPU\\\\\\\\@${clk}Mhz)\"/")
        if [ -z "$OPT_NO_X11" ]; then
            echo "set terminal x11 enhanced; ${cmd}" | gnuplot -persist
        fi
@@ -96,8 +116,8 @@ plot() {
        echo "set terminal postscript color eps enhanced;
              ${cmd}" | gnuplot | epstopdf --filter > `basename $0 .sh`$I.pdf
        mkdir -p thumb
-       convert -geometry 1000x100 -gamma 0.3 `basename $0 .sh`$I.pdf thumb/`basename $0 .sh`$I.png
-       convert -density 200 -gamma 0.7 -geometry 1000x500 `basename $0 .sh`$I.pdf `basename $0 .sh`$I.png
+       convert -geometry 1000x100 -gamma 0.3 -quality 90 -type Palette -depth 8 `basename $0 .sh`$I.pdf thumb/`basename $0 .sh`$I.png
+       convert -density 200 -gamma 0.7 -geometry 1000x500 -quality 90 -type Palette -depth 8 `basename $0 .sh`$I.pdf `basename $0 .sh`$I.png
     done
 }
 
@@ -106,16 +126,16 @@ create_dirs_and_links() {
     local kver=$2
     local clck=$3
 
-    local  d=results/by-test/$test/$kver/$clck
+    local  d=results/by-kern/$kver/$clck/$test
     mkdir -p $d
-    mkdir -p results/by-test/$test/$clck # 1
-    mkdir -p results/by-kern/$kver/$clck # 2
-    mkdir -p results/by-kern/$kver/$test # 3
+    mkdir -p results/by-kern/$kver/$test # 1
+    mkdir -p results/by-test/$test/$kver # 2
+    mkdir -p results/by-test/$test/$clck # 3
     mkdir -p results/by-clck/$clck/$kver # 4
     mkdir -p results/by-clck/$clck/$test # 5
-    ln -sfT ../../../${d#results/} results/by-test/$test/$clck/$kver # 1
-    ln -sfT ../../../${d#results/} results/by-kern/$kver/$clck/$test # 2
-    ln -sfT ../../../${d#results/} results/by-kern/$kver/$test/$clck # 3
+    ln -sfT ../../../${d#results/} results/by-kern/$kver/$test/$clck # 1
+    ln -sfT ../../../${d#results/} results/by-test/$test/$kver/$clck # 2
+    ln -sfT ../../../${d#results/} results/by-test/$test/$clck/$kver # 3
     ln -sfT ../../../${d#results/} results/by-clck/$clck/$kver/$test # 4
     ln -sfT ../../../${d#results/} results/by-clck/$clck/$test/$kver # 5
     echo $d
@@ -123,19 +143,28 @@ create_dirs_and_links() {
 
 go() {
     echo "####################"
-    mhz=${MHZ:-2400 300}
+    mhz=`sed -ne '/^cpu MHz/ s/.*:\([^.]+\).*/\1/p' /proc/cpuinfo|head -n 1`
+    if [ -r /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq ]; then
+       local max=$((`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`/1000))
+       local min=$((`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`/1000))
+       mhz="$max $min"
+    fi
     for clk in $mhz; do
     echo "===================="
-       dir=$(create_dirs_and_links `basename $0 .sh` `uname -r` $clk)
+       dir=$(create_dirs_and_links `basename $0 .sh` `kvers` $clk)
        set -x
        pushd $dir
 
        if [ ! -n "$OPT_PLOT_ONLY" ]; then
            cpufreq-set -f ${clk}MHz
            run_tests
-           cpufreq-set -f 2400MHz
+           cpufreq-set -f ${mhz}MHz
+       else
+           unset OPT_PLOT_DISABLE
+       fi
+       if [ ! -n "$OPT_PLOT_DISABLE" ]; then
+           plot
        fi
-       plot
        popd
        set +x
     done