X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lisovros/canprio_benchmark.git/blobdiff_plain/90dc6db56fe03f457ec68c1ec44e80b7c8dcc4bf..14860ae7c6f55bcc9c34de976b23dfb3b9183d6a:/test6/script_configuration diff --git a/test6/script_configuration b/test6/script_configuration new file mode 100755 index 0000000..df6c194 --- /dev/null +++ b/test6/script_configuration @@ -0,0 +1,107 @@ +#!/bin/sh + +# ----- 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=0 +COUNT=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 +