X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=markers-test%2Fruntest.sh;h=2fcf4d9d4ba9b62ef7f18a73824ce4267701c1f1;hb=70078fe6a573f7616eed7139b146cb15a64c594a;hp=e62d589ca847c7c86fa0f6e69e094968e334f4bc;hpb=5744adfe54c64a6852c32ddcce3568aec45b6eb8;p=lttv.git diff --git a/markers-test/runtest.sh b/markers-test/runtest.sh index e62d589c..2fcf4d9d 100644 --- a/markers-test/runtest.sh +++ b/markers-test/runtest.sh @@ -1,39 +1,149 @@ #!/bin/sh +make clean +make #build no flush modules + +ITER=10 +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 |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` + insmod test-mark-speed.ko -for a in `seq 1 10`; do cat /proc/testmark;done +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/^\[.*\] cycles : \(.*\)$/\1/'` +RESSTD=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` insmod test-mark-speed-opt.ko -for a in `seq 1 10`; do cat /proc/testmark;done +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/^\[.*\] cycles : \(.*\)$/\1/'` +RESOPT=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` insmod test-mark-speed-edit.ko -for a in `seq 1 10`; do cat /proc/testmark;done +#Patch with nops +cat /proc/testmark + +for a in `seq 1 $ITER`; do cat /proc/testmark;done rmmod test-mark-speed-edit -RESNOP=`dmesg |tail -n 10|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 +cat /proc/testmark + +for a in `seq 1 $ITER`; do cat /proc/testmark;done +rmmod test-mark-speed-local +RESNOPLOCAL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` + + +#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 |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 |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 |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` + +insmod test-mark-speed-edit.ko +#Patch with nops +cat /proc/testmark + +for a in `seq 1 $ITER`; do cat /proc/testmark;done +rmmod test-mark-speed-edit +RESNOPFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` + +insmod test-mark-speed-local.ko +#Patch with nops +cat /proc/testmark -echo "20000 iterations" +for a in `seq 1 $ITER`; do cat /proc/testmark;done +rmmod test-mark-speed-local +RESNOPLOCALFL=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` -echo "Numbers for normal marker" + +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=`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=`echo "$SUM + $a" | bc -l /dev/stdin`; done +RESEMPFL=`echo $SUM/$ITER/$LOOPS | bc -l /dev/stdin` +echo $RESEMPFL + + +echo -n "Added cycles for normal marker [cached, uncached] " +SUM="0" +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 -n "[$RESSTD, " + +SUM="0" +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 -n "Added cycles for optimized marker [cached, uncached] " +SUM="0" +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 -n "[$RESOPT, " + +SUM="0" +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 -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=`echo "$SUM + $a" | bc -l /dev/stdin`; done +RESNOP=`echo $SUM/$ITER/$LOOPS - $RESEMP | bc -l /dev/stdin` +echo -n "[$RESNOP, " SUM="0" -for a in $RESSTD; do SUM=$[$SUM + $a]; done -RESSTD=$[$SUM / 10] +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 $RESSTD -echo "Numbers for optimized marker" +echo -n "Added cycles for NOP replacement of function call (6 local vars) [cached, uncached] " SUM="0" -for a in $RESOPT; do SUM=$[$SUM + $a]; done -RESOPT=$[$SUM / 10] -echo $RESOPT +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 -n "[$RESNOPLOCAL, " -echo "Numbers for NOP replacement of function call" SUM="0" -for a in $RESNOP; do SUM=$[$SUM + $a]; done -RESNOP=$[$SUM / 10] -echo $RESNOP +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]"