]> rtime.felk.cvut.cz Git - lisovros/canprio_benchmark.git/blob - test2/script_configuration
e7c70d5977cbaf444613caa9369fe5cc58a6524b
[lisovros/canprio_benchmark.git] / test2 / script_configuration
1 #!/bin/bash
2
3 # ----- Initialize CAN devices -----
4 . caninit.sh
5
6
7 # ----- Configure ftrace -----
8 FTRDIR=/sys/kernel/debug/tracing
9 sysctl kernel.ftrace_enabled=1
10 echo "function_graph" > ${FTRDIR}/current_tracer
11 sleep 1
12 echo "can_send" > ${FTRDIR}/set_ftrace_filter
13 echo 1 > ${FTRDIR}/tracing_on
14
15
16 # ----- Run benchmarks -----
17 DESTDIR=ftrace
18 GAP=0
19 COUNT=5000
20 DATA=i
21 LENGTH=8
22 FRMTYPE=""
23
24 echo "Benchmarking ..."
25
26 for X in "sff" "eff";
27 do
28         if [ ${X} == "eff" ]; then
29                 FRMTYPE="-e"
30         else
31                 FRMTYPE=""
32         fi      
33
34         # Default (pfifo qdisc)
35         echo "[pfifo]"
36         . setcanprio.sh del
37         echo > ${FTRDIR}/trace
38         cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
39         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo1.txt
40
41         echo > ${FTRDIR}/trace
42         cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
43         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo2.txt
44
45
46         # With PRIO qdisc; all traffic is classified into first class
47         echo "[prio]"
48         echo > ${FTRDIR}/trace
49         . setcanprio.sh del
50         . setcanprio.sh prio
51         cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
52         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1.txt
53
54         # With PRIO qdisc; most of the traffic goes to "default" class
55         echo > ${FTRDIR}/trace
56         cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
57         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1b.txt
58
59
60         # With PRIO qdisc; There is maximum rules for each (except the last) class
61         echo "[prio2]"
62         echo > ${FTRDIR}/trace
63         . setcanprio.sh del
64
65         if [ ${X} == "eff" ]; then
66                 . setcanprio.sh prio2eff
67         else
68                 . setcanprio.sh prio2sff
69         fi      
70
71         cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
72         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio2.txt
73
74         
75         # With HTB qdisc
76         echo "[htb]"
77         echo > ${FTRDIR}/trace
78         . setcanprio.sh del
79         . setcanprio.sh htb
80         cangen ${FRMTYPE} can0 -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
81         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb1.txt
82
83         echo > ${FTRDIR}/trace
84         cangen ${FRMTYPE} can0 -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
85         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb2.txt
86 done
87
88
89 # ----- Disable tracing -----
90 echo 0 > ${FTRDIR}/tracing_on
91 exit 0
92