f175e050 |
1 | #!/bin/sh |
2 | |
64242d95 |
3 | make clean |
4 | make #build no flush modules |
5 | |
7c74e09f |
6 | ITER=10 |
37c58830 |
7 | LOOPS=20000 |
db68aac5 |
8 | |
8dd5f9aa |
9 | insmod test-mark-speed-empty.ko |
255c10a8 |
10 | cat /proc/testmark |
db68aac5 |
11 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
8dd5f9aa |
12 | rmmod test-mark-speed-empty |
ac7efa12 |
13 | RESEMP=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
8dd5f9aa |
14 | |
f175e050 |
15 | insmod test-mark-speed.ko |
255c10a8 |
16 | cat /proc/testmark |
db68aac5 |
17 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
f175e050 |
18 | rmmod test-mark-speed |
ac7efa12 |
19 | RESSTD=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
f175e050 |
20 | |
21 | insmod test-mark-speed-opt.ko |
255c10a8 |
22 | cat /proc/testmark |
db68aac5 |
23 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
f175e050 |
24 | rmmod test-mark-speed-opt |
ac7efa12 |
25 | RESOPT=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
f175e050 |
26 | |
27 | insmod test-mark-speed-edit.ko |
a1d38aec |
28 | #Patch with nops |
db68aac5 |
29 | cat /proc/testmark |
30 | |
31 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
f175e050 |
32 | rmmod test-mark-speed-edit |
ac7efa12 |
33 | RESNOP=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
f175e050 |
34 | |
72777946 |
35 | insmod test-mark-speed-local.ko |
36 | #Patch with nops |
37 | cat /proc/testmark |
38 | |
39 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
40 | rmmod test-mark-speed-local |
ac7efa12 |
41 | RESNOPLOCAL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
72777946 |
42 | |
f175e050 |
43 | |
d511c84b |
44 | #make clean |
45 | #make EXTRA_CFLAGS=-DCACHEFLUSH |
46 | |
47 | modprobe cachectl |
64242d95 |
48 | |
49 | insmod test-mark-speed-empty.ko |
255c10a8 |
50 | cat /proc/testmark |
64242d95 |
51 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
52 | rmmod test-mark-speed-empty |
ac7efa12 |
53 | RESEMPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
54 | |
55 | insmod test-mark-speed.ko |
255c10a8 |
56 | cat /proc/testmark |
64242d95 |
57 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
58 | rmmod test-mark-speed |
ac7efa12 |
59 | RESSTDFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
60 | |
61 | insmod test-mark-speed-opt.ko |
255c10a8 |
62 | cat /proc/testmark |
64242d95 |
63 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
64 | rmmod test-mark-speed-opt |
ac7efa12 |
65 | RESOPTFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
66 | |
67 | insmod test-mark-speed-edit.ko |
68 | #Patch with nops |
69 | cat /proc/testmark |
70 | |
71 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
72 | rmmod test-mark-speed-edit |
ac7efa12 |
73 | RESNOPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
74 | |
72777946 |
75 | insmod test-mark-speed-local.ko |
76 | #Patch with nops |
77 | cat /proc/testmark |
78 | |
79 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
80 | rmmod test-mark-speed-local |
ac7efa12 |
81 | RESNOPLOCALFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
72777946 |
82 | |
64242d95 |
83 | |
d511c84b |
84 | rmmod cachectl |
64242d95 |
85 | |
86 | |
87 | echo "Results in cycles per loop" |
8dd5f9aa |
88 | |
64242d95 |
89 | echo "Cycles for empty loop (will be substracted for cached runs)" |
8dd5f9aa |
90 | SUM="0" |
869b7fc3 |
91 | for a in $RESEMP; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
92 | RESEMP=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin` |
d09a9b2c |
93 | echo $RESEMP |
8dd5f9aa |
94 | |
64242d95 |
95 | echo "Cycles for wbinvd() loop (will be substracted non-cached runs)" |
96 | SUM="0" |
869b7fc3 |
97 | for a in $RESEMPFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
98 | RESEMPFL=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin` |
99 | echo $RESEMPFL |
f175e050 |
100 | |
64242d95 |
101 | |
455a237d |
102 | echo -n "Added cycles for normal marker [cached, uncached] " |
f175e050 |
103 | SUM="0" |
869b7fc3 |
104 | for a in $RESSTD; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
105 | RESSTD=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
106 | echo -n "[$RESSTD, " |
f175e050 |
107 | |
64242d95 |
108 | SUM="0" |
869b7fc3 |
109 | for a in $RESSTDFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
110 | RESSTDFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
111 | echo "$RESSTDFL]" |
64242d95 |
112 | |
113 | |
114 | |
455a237d |
115 | echo -n "Added cycles for optimized marker [cached, uncached] " |
f175e050 |
116 | SUM="0" |
869b7fc3 |
117 | for a in $RESOPT; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
118 | RESOPT=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
119 | echo -n "[$RESOPT, " |
f175e050 |
120 | |
64242d95 |
121 | SUM="0" |
869b7fc3 |
122 | for a in $RESOPTFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
123 | RESOPTFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
124 | echo "$RESOPTFL]" |
64242d95 |
125 | |
126 | |
455a237d |
127 | echo -n "Added cycles for NOP replacement of function call (1 pointer read, 5 local vars) [cached, uncached] " |
f175e050 |
128 | SUM="0" |
869b7fc3 |
129 | for a in $RESNOP; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
130 | RESNOP=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
131 | echo -n "[$RESNOP, " |
f175e050 |
132 | |
64242d95 |
133 | SUM="0" |
869b7fc3 |
134 | for a in $RESNOPFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
135 | RESNOPFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
136 | echo "$RESNOPFL]" |
64242d95 |
137 | |
138 | |
455a237d |
139 | echo -n "Added cycles for NOP replacement of function call (6 local vars) [cached, uncached] " |
72777946 |
140 | SUM="0" |
869b7fc3 |
141 | for a in $RESNOPLOCAL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
72777946 |
142 | RESNOPLOCAL=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
143 | echo -n "[$RESNOPLOCAL, " |
72777946 |
144 | |
72777946 |
145 | SUM="0" |
869b7fc3 |
146 | for a in $RESNOPLOCALFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
72777946 |
147 | RESNOPLOCALFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
148 | echo "$RESNOPLOCALFL]" |
149 | |