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 | |
64242d95 |
44 | make clean |
45 | make EXTRA_CFLAGS=-DCACHEFLUSH |
46 | |
47 | insmod test-mark-speed-empty.ko |
255c10a8 |
48 | cat /proc/testmark |
64242d95 |
49 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
50 | rmmod test-mark-speed-empty |
ac7efa12 |
51 | RESEMPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
52 | |
53 | insmod test-mark-speed.ko |
255c10a8 |
54 | cat /proc/testmark |
64242d95 |
55 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
56 | rmmod test-mark-speed |
ac7efa12 |
57 | RESSTDFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
58 | |
59 | insmod test-mark-speed-opt.ko |
255c10a8 |
60 | cat /proc/testmark |
64242d95 |
61 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
62 | rmmod test-mark-speed-opt |
ac7efa12 |
63 | RESOPTFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
64 | |
65 | insmod test-mark-speed-edit.ko |
66 | #Patch with nops |
67 | cat /proc/testmark |
68 | |
69 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
70 | rmmod test-mark-speed-edit |
ac7efa12 |
71 | RESNOPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
64242d95 |
72 | |
72777946 |
73 | insmod test-mark-speed-local.ko |
74 | #Patch with nops |
75 | cat /proc/testmark |
76 | |
77 | for a in `seq 1 $ITER`; do cat /proc/testmark;done |
78 | rmmod test-mark-speed-local |
ac7efa12 |
79 | RESNOPLOCALFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` |
72777946 |
80 | |
64242d95 |
81 | |
82 | |
83 | |
84 | echo "Results in cycles per loop" |
8dd5f9aa |
85 | |
64242d95 |
86 | echo "Cycles for empty loop (will be substracted for cached runs)" |
8dd5f9aa |
87 | SUM="0" |
869b7fc3 |
88 | for a in $RESEMP; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
89 | RESEMP=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin` |
d09a9b2c |
90 | echo $RESEMP |
8dd5f9aa |
91 | |
64242d95 |
92 | echo "Cycles for wbinvd() loop (will be substracted non-cached runs)" |
93 | SUM="0" |
869b7fc3 |
94 | for a in $RESEMPFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
95 | RESEMPFL=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin` |
96 | echo $RESEMPFL |
f175e050 |
97 | |
64242d95 |
98 | |
455a237d |
99 | echo -n "Added cycles for normal marker [cached, uncached] " |
f175e050 |
100 | SUM="0" |
869b7fc3 |
101 | for a in $RESSTD; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
102 | RESSTD=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
103 | echo -n "[$RESSTD, " |
f175e050 |
104 | |
64242d95 |
105 | SUM="0" |
869b7fc3 |
106 | for a in $RESSTDFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
107 | RESSTDFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
108 | echo "$RESSTDFL]" |
64242d95 |
109 | |
110 | |
111 | |
455a237d |
112 | echo -n "Added cycles for optimized marker [cached, uncached] " |
f175e050 |
113 | SUM="0" |
869b7fc3 |
114 | for a in $RESOPT; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
115 | RESOPT=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
116 | echo -n "[$RESOPT, " |
f175e050 |
117 | |
64242d95 |
118 | SUM="0" |
869b7fc3 |
119 | for a in $RESOPTFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
120 | RESOPTFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
121 | echo "$RESOPTFL]" |
64242d95 |
122 | |
123 | |
455a237d |
124 | echo -n "Added cycles for NOP replacement of function call (1 pointer read, 5 local vars) [cached, uncached] " |
f175e050 |
125 | SUM="0" |
869b7fc3 |
126 | for a in $RESNOP; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
db68aac5 |
127 | RESNOP=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
128 | echo -n "[$RESNOP, " |
f175e050 |
129 | |
64242d95 |
130 | SUM="0" |
869b7fc3 |
131 | for a in $RESNOPFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
64242d95 |
132 | RESNOPFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
133 | echo "$RESNOPFL]" |
64242d95 |
134 | |
135 | |
455a237d |
136 | echo -n "Added cycles for NOP replacement of function call (6 local vars) [cached, uncached] " |
72777946 |
137 | SUM="0" |
869b7fc3 |
138 | for a in $RESNOPLOCAL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
72777946 |
139 | RESNOPLOCAL=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` |
455a237d |
140 | echo -n "[$RESNOPLOCAL, " |
72777946 |
141 | |
72777946 |
142 | SUM="0" |
869b7fc3 |
143 | for a in $RESNOPLOCALFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done |
72777946 |
144 | RESNOPLOCALFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin` |
455a237d |
145 | echo "$RESNOPLOCALFL]" |
146 | |