make #build no flush modules
ITER=10
-LOOPS=2000
+LOOPS=20000
insmod test-mark-speed-empty.ko
+cat /proc/testmark
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-empty
-RESEMP=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESEMP=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed.ko
+cat /proc/testmark
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed
-RESSTD=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESSTD=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed-opt.ko
+cat /proc/testmark
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-opt
-RESOPT=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESOPT=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed-edit.ko
#Patch with nops
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-edit
-RESNOP=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESNOP=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed-local.ko
#Patch with nops
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-local
-RESNOPLOCAL=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESNOPLOCAL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
-make clean
-make EXTRA_CFLAGS=-DCACHEFLUSH
+#make clean
+#make EXTRA_CFLAGS=-DCACHEFLUSH
+
+insmod cachectl.ko
insmod test-mark-speed-empty.ko
+cat /proc/testmark
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-empty
-RESEMPFL=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESEMPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed.ko
+cat /proc/testmark
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed
-RESSTDFL=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESSTDFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed-opt.ko
+cat /proc/testmark
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-opt
-RESOPTFL=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESOPTFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed-edit.ko
#Patch with nops
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-edit
-RESNOPFL=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESNOPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
insmod test-mark-speed-local.ko
#Patch with nops
for a in `seq 1 $ITER`; do cat /proc/testmark;done
rmmod test-mark-speed-local
-RESNOPLOCALFL=`dmesg |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+RESNOPLOCALFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'`
+rmmod cachectl
echo "Results in cycles per loop"
echo "Cycles for empty loop (will be substracted for cached runs)"
SUM="0"
-for a in $RESEMP; do SUM=$[$SUM + $a]; done
+for a in $RESEMP; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESEMP=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin`
echo $RESEMP
echo "Cycles for wbinvd() loop (will be substracted non-cached runs)"
SUM="0"
-for a in $RESEMPFL; do SUM=$[$SUM + $a]; done
+for a in $RESEMPFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESEMPFL=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin`
echo $RESEMPFL
-echo "Added cycles for normal marker (cached)"
+echo -n "Added cycles for normal marker [cached, uncached] "
SUM="0"
-for a in $RESSTD; do SUM=$[$SUM + $a]; done
+for a in $RESSTD; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESSTD=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin`
-echo $RESSTD
+echo -n "[$RESSTD, "
-echo "Added cycles for normal marker (uncached)"
SUM="0"
-for a in $RESSTDFL; do SUM=$[$SUM + $a]; done
+for a in $RESSTDFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESSTDFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin`
-echo $RESSTDFL
+echo "$RESSTDFL]"
-echo "Added cycles for optimized marker (cached)"
+echo -n "Added cycles for optimized marker [cached, uncached] "
SUM="0"
-for a in $RESOPT; do SUM=$[$SUM + $a]; done
+for a in $RESOPT; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESOPT=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin`
-echo $RESOPT
+echo -n "[$RESOPT, "
-echo "Added cycles for optimized marker (uncached)"
SUM="0"
-for a in $RESOPTFL; do SUM=$[$SUM + $a]; done
+for a in $RESOPTFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESOPTFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin`
-echo $RESOPTFL
+echo "$RESOPTFL]"
-echo "Added cycles for NOP replacement of function call (cached) (1 pointer read, 5 local vars)"
+echo -n "Added cycles for NOP replacement of function call (1 pointer read, 5 local vars) [cached, uncached] "
SUM="0"
-for a in $RESNOP; do SUM=$[$SUM + $a]; done
+for a in $RESNOP; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESNOP=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin`
-echo $RESNOP
+echo -n "[$RESNOP, "
-echo "Added cycles for NOP replacement of function call (uncached) (1 pointer read, 5 local vars)"
SUM="0"
-for a in $RESNOPFL; do SUM=$[$SUM + $a]; done
+for a in $RESNOPFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESNOPFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin`
-echo $RESNOPFL
+echo "$RESNOPFL]"
-echo "Added cycles for NOP replacement of function call (cached) (6 local vars)"
+echo -n "Added cycles for NOP replacement of function call (6 local vars) [cached, uncached] "
SUM="0"
-for a in $RESNOPLOCAL; do SUM=$[$SUM + $a]; done
+for a in $RESNOPLOCAL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESNOPLOCAL=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin`
-echo $RESNOPLOCAL
+echo -n "[$RESNOPLOCAL, "
-echo "Added cycles for NOP replacement of function call (uncached) (6 local vars)"
SUM="0"
-for a in $RESNOPLOCALFL; do SUM=$[$SUM + $a]; done
+for a in $RESNOPLOCALFL; do SUM=`echo "$SUM + $a" | bc -l /dev/stdin`; done
RESNOPLOCALFL=`echo $SUM/$ITER/$LOOPS - $RESEMPFL | bc -l /dev/stdin`
-echo $RESNOPLOCALFL
+echo "$RESNOPLOCALFL]"
+