]> rtime.felk.cvut.cz Git - lisovros/canprio_benchmark.git/blobdiff - test10/script_configuration
Added benchmarks performed on P4 on vcan device.
[lisovros/canprio_benchmark.git] / test10 / script_configuration
diff --git a/test10/script_configuration b/test10/script_configuration
new file mode 100755 (executable)
index 0000000..3b65074
--- /dev/null
@@ -0,0 +1,107 @@
+#!/bin/bash
+
+# ----- Initialize CAN devices -----
+. vcaninit.sh 1000
+
+
+# ----- Configure ftrace -----
+mount -t debugfs nodev /sys/kernel/debug
+FTRDIR=/sys/kernel/debug/tracing
+sysctl kernel.ftrace_enabled=1
+echo "function_graph" > ${FTRDIR}/current_tracer
+sleep 1
+echo "can_send" > ${FTRDIR}/set_ftrace_filter
+echo 1 > ${FTRDIR}/tracing_on
+
+
+# ----- Run benchmarks -----
+DESTDIR=ftrace
+GAP=1
+OCCOUNT=5000
+DATA=i
+LENGTH=8
+FRMTYPE=""
+DEV="vcan0"
+
+echo "Benchmarking ..."
+
+for X in "sff" "eff";
+do
+       if [ ${X} == "eff" ]; then
+               FRMTYPE="-e"
+       else
+               FRMTYPE=""
+       fi      
+
+       # Default (pfifo qdisc)
+       echo "[pfifo]"
+       . setcanfltr.sh del ${DEV}
+       echo > ${FTRDIR}/trace
+       cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo1.txt
+
+       echo > ${FTRDIR}/trace
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo2.txt
+
+
+       # With PRIO qdisc; all traffic is classified into first class
+       echo "[prio]"
+       echo > ${FTRDIR}/trace
+       . setcanfltr.sh del ${DEV}
+       . setcanfltr.sh prio ${DEV}
+       cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1.txt
+
+       # With PRIO qdisc; most of the traffic goes to "default" class
+       echo > ${FTRDIR}/trace
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1b.txt
+
+
+       # With PRIO qdisc; There is maximum rules for each (except the last) class
+       echo "[prio2]"
+       echo > ${FTRDIR}/trace
+       . setcanfltr.sh del ${DEV}
+
+       if [ ${X} == "eff" ]; then
+               . setcanfltr.sh prio2eff ${DEV}
+       else
+               . setcanfltr.sh prio2sff ${DEV}
+       fi      
+
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio2.txt
+
+       
+       # With HTB qdisc
+       echo "[htb]"
+       echo > ${FTRDIR}/trace
+       . setcanfltr.sh del ${DEV}
+       . setcanfltr.sh htb ${DEV}
+       cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb1.txt
+
+       echo > ${FTRDIR}/trace
+       cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb2.txt
+
+       # With SFQ qdisc
+       echo "[sfq]"
+       echo > ${FTRDIR}/trace
+       . setcanfltr.sh del ${DEV}
+       . setcanfltr.sh sfq ${DEV}
+       cangen -b 18432 ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_sfq.txt
+
+       echo > ${FTRDIR}/trace
+       cangen -b 18432 ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
+       cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_sfq2.txt
+
+done
+
+
+# ----- Disable tracing -----
+echo 0 > ${FTRDIR}/tracing_on
+exit 0
+