X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=markers-test%2Fruntest.sh;h=2fcf4d9d4ba9b62ef7f18a73824ce4267701c1f1;hb=70078fe6a573f7616eed7139b146cb15a64c594a;hp=152f41e114b03966d557dbafa218f69556d357f6;hpb=db68aac5383a982a3f81bc60bacffff550bc7031;p=lttv.git diff --git a/markers-test/runtest.sh b/markers-test/runtest.sh index 152f41e1..2fcf4d9d 100644 --- a/markers-test/runtest.sh +++ b/markers-test/runtest.sh @@ -1,22 +1,28 @@ #!/bin/sh +make clean +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 @@ -24,35 +30,120 @@ 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/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` +RESNOP=`dmesg |grep "cycles : " |tail -n 10 |sed 's/^\[.*\] //'| sed 's/cycles : \(.*\)$/\1/'` -echo "Results in cycles per loop" +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/'` -echo "Cycles for wbinvd() loop (will be substracted from following results)" +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 + +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/'` + + +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 "Added cycles for normal marker" +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=$[$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 -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 $RESSTD -echo "Added cycles for optimized marker" +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, " + +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 "Added cycles for NOP replacement of function call" +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, " + +SUM="0" +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 -n "Added cycles for NOP replacement of function call (6 local vars) [cached, uncached] " +SUM="0" +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, " + +SUM="0" +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]"