]> rtime.felk.cvut.cz Git - lisovros/canprio_benchmark.git/blob - test9/script_configuration
Added benchmarks performed on P4 on vcan device.
[lisovros/canprio_benchmark.git] / test9 / script_configuration
1 #!/bin/bash
2
3 # ----- Initialize CAN devices -----
4 . vcaninit.sh 1000
5
6
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
12 sleep 1
13 echo "can_send" > ${FTRDIR}/set_ftrace_filter
14 echo 1 > ${FTRDIR}/tracing_on
15
16
17 # ----- Run benchmarks -----
18 DESTDIR=ftrace
19 GAP=0
20 COUNT=5000
21 DATA=i
22 LENGTH=8
23 FRMTYPE=""
24 DEV="vcan0"
25
26 echo "Benchmarking ..."
27
28 for X in "sff" "eff";
29 do
30         if [ ${X} == "eff" ]; then
31                 FRMTYPE="-e"
32         else
33                 FRMTYPE=""
34         fi      
35
36         # Default (pfifo qdisc)
37         echo "[pfifo]"
38         . setcanfltr.sh del ${DEV}
39         echo > ${FTRDIR}/trace
40         cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
41         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo1.txt
42
43         echo > ${FTRDIR}/trace
44         cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
45         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_pfifo2.txt
46
47
48         # With PRIO qdisc; all traffic is classified into first class
49         echo "[prio]"
50         echo > ${FTRDIR}/trace
51         . setcanfltr.sh del ${DEV}
52         . setcanfltr.sh prio ${DEV}
53         cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
54         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1.txt
55
56         # With PRIO qdisc; most of the traffic goes to "default" class
57         echo > ${FTRDIR}/trace
58         cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
59         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio1b.txt
60
61
62         # With PRIO qdisc; There is maximum rules for each (except the last) class
63         echo "[prio2]"
64         echo > ${FTRDIR}/trace
65         . setcanfltr.sh del ${DEV}
66
67         if [ ${X} == "eff" ]; then
68                 . setcanfltr.sh prio2eff ${DEV}
69         else
70                 . setcanfltr.sh prio2sff ${DEV}
71         fi      
72
73         cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
74         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_prio2.txt
75
76         
77         # With HTB qdisc
78         echo "[htb]"
79         echo > ${FTRDIR}/trace
80         . setcanfltr.sh del ${DEV}
81         . setcanfltr.sh htb ${DEV}
82         cangen ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
83         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb1.txt
84
85         echo > ${FTRDIR}/trace
86         cangen ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
87         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_htb2.txt
88
89         # With SFQ qdisc
90         echo "[sfq]"
91         echo > ${FTRDIR}/trace
92         . setcanfltr.sh del ${DEV}
93         . setcanfltr.sh sfq ${DEV}
94         cangen -b 18432 ${FRMTYPE} ${DEV} -I 123 -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
95         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_sfq.txt
96
97         echo > ${FTRDIR}/trace
98         cangen -b 18432 ${FRMTYPE} ${DEV} -I i -L ${LENGTH} -D ${DATA} -g ${GAP} -n ${COUNT}
99         cp ${FTRDIR}/trace ${DESTDIR}/ftrace_${X}_sfq2.txt
100
101 done
102
103
104 # ----- Disable tracing -----
105 echo 0 > ${FTRDIR}/tracing_on
106 exit 0
107