X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lisovros/canprio_benchmark.git/blobdiff_plain/339fd68d20fe847fcab94130d678d88e294d1598..0df09ee9f968d3339639dc0a7f862fdd04f51ae9:/test3/script_configuration diff --git a/test3/script_configuration b/test3/script_configuration new file mode 100755 index 0000000..6f6f08b --- /dev/null +++ b/test3/script_configuration @@ -0,0 +1,93 @@ +#!/bin/sh + +# ----- Initialize CAN devices ----- +. caninit.sh + + +# ----- 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=0 +COUNT=5000 +DATA=i +LENGTH=8 +FRMTYPE="" + +echo "Benchmarking ..." + +for X in "sff" "eff"; +do + if [ ${X} == "eff" ]; then + FRMTYPE="-e" + else + FRMTYPE="" + fi + + # Default (pfifo qdisc) + echo "[pfifo]" + . setcanprio.sh del + echo > ${FTRDIR}/trace + cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT} + cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo1.txt + + echo > ${FTRDIR}/trace + cangen ${FRMTYPE} can0 -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 + . setcanprio.sh del + . setcanprio.sh prio + cangen ${FRMTYPE} can0 -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} can0 -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 + . setcanprio.sh del + + if [ ${X} == "eff" ]; then + . setcanprio.sh prio2eff + else + . setcanprio.sh prio2sff + fi + + cangen ${FRMTYPE} can0 -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 + . setcanprio.sh del + . setcanprio.sh htb + cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT} + cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb1.txt + + echo > ${FTRDIR}/trace + cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT} + cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb2.txt +done + + +# ----- Disable tracing ----- +echo 0 > ${FTRDIR}/tracing_on +exit 0 +