Messages in this thread | | | Subject | Re: collecting simple benchmark scripts? | From | Laura Abbott <> | Date | Thu, 15 Feb 2018 10:32:21 -0800 |
| |
On 02/14/2018 02:50 PM, Kees Cook wrote: > Hi, > > In a separate thread, some folks were looking for some simple > benchmarks for evaluating various changes to kernel internals (as > opposed to the much more focused things like xfstests). For me, this > has been an area of lore and passed-around scripts, and it seems like > maybe we should have a subdirectory of tools/testing/benchmarks/ or > something to collect these? > > (Or maybe this already exists and I've totally missed it?) > > I've got at least one micro-benchmark in > tools/testing/selftests/seccomp/seccomp_benchmark.c, and searches show > tools/testing/selftests/vm/gup_benchmark.c too, but I was thinking of > either more generali things more like the famous "kernel build > benchmark" or a wrapper for running hackbench to get some statistics > out of it, etc. > > Or, I guess, at least collecting all the micro-benchmarks in some > single place, as they're a bit scattered. > > I'm sure I'm not remotely the first person to bring this up, but my > attempts at searches for this have failed. > > Thoughts? > > -Kees >
This is the script I've been using for hackbench since it can be noisy. I expect someone to tell me the math is wrong but I'd be happy to throw this in a repo if others are interested
#!/bin/sh
CNT=100 mean=0.0 M2=0.0 for i in $(seq 1 $CNT); do echo $i r=`hackbench -g 20 -l 1000 | grep Time | cut -d ' ' -f 2` d_calc="$r-$mean" d=`echo $d_calc | bc -l` mean_calc="$mean+($d/$i)" mean=`echo $mean_calc | bc -l` M2_calc="$M2+($d*($r-$mean))" M2=`echo $M2_calc| bc -l` done
echo "mean $mean" V_calc="$M2/$(($CNT-1))" V=`echo $V_calc | bc -l` DEV_calc="sqrt($V)" DEV=`echo $DEV_calc | bc -l` echo "variance $V" echo "stdev $DEV"
| |