3 # ----- Initialize CAN devices -----
7 # ----- Configure ftrace -----
8 mount -t debugfs nodev /sys/kernel/debug/
9 FTRDIR=/sys/kernel/debug/tracing
10 sysctl kernel.ftrace_enabled=1
11 echo "function_graph" > ${FTRDIR}/current_tracer
13 echo "can_send" > ${FTRDIR}/set_ftrace_filter
14 echo 1 > ${FTRDIR}/tracing_on
17 # ----- Run benchmarks -----
25 echo "Benchmarking ..."
29 if [ ${X} == "eff" ]; then
35 # Default (pfifo qdisc)
38 echo > ${FTRDIR}/trace
39 cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
40 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo1.txt
42 echo > ${FTRDIR}/trace
43 cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
44 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo2.txt
47 # With PRIO qdisc; all traffic is classified into first class
49 echo > ${FTRDIR}/trace
52 cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
53 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1.txt
55 # With PRIO qdisc; most of the traffic goes to "default" class
56 echo > ${FTRDIR}/trace
57 cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
58 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1b.txt
61 # With PRIO qdisc; There is maximum rules for each (except the last) class
63 echo > ${FTRDIR}/trace
66 if [ ${X} == "eff" ]; then
67 . setcanprio.sh prio2eff
69 . setcanprio.sh prio2sff
72 cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
73 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio2.txt
78 echo > ${FTRDIR}/trace
81 cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
82 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb1.txt
84 echo > ${FTRDIR}/trace
85 cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
86 cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb2.txt
90 # ----- Disable tracing -----
91 echo 0 > ${FTRDIR}/tracing_on