$ wget http://www.bitmover.com/lmbench/lmbench3.tar.gz $ tar -zxvf lmbench3.tar.gz $ cd lmbench3/src $ cp Makefile Makefile.bak $ vim Makefile $ diff Makefile.bak Makefile 114c114 < @env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="$(CC)" OS="$(OS)" ../scripts/build all --- > @env CFLAGS="-O -static" MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="$(CC)" OS="$(OS)" ../scripts/build all 231c231 < $O/lmbench : ../scripts/lmbench bk.ver --- > $O/lmbench : ../scripts/lmbench #bk.ver $ make CC=/opt/aarch64/aarch64v8-marvell-linux-gnu-5.2.1_i686_20151110/bin/aarch64-linux-gnu-gcc OS=arm-linux TARGET=linux
An example script to run memory test only
#!/bin/bash -x exec 2>&1 target=linux sizes="1k 4k 16k 32k 128k 256k 512k 1m 2m 4m 8m" stride="32 128 1024" date LOGFILE="benchmark_run_raw.log" LOGFILE2="benchmark_run.log" echo "Creating / cleaning out file."; cat /dev/null > $LOGFILE; cat /dev/null > $LOGFILE2; TITLE=`basename ${PWD}` echo ">>>>>> Benchmarks is $TITLE" >> $LOGFILE echo "\"------mhz \"">> $LOGFILE ${RUNPREFIX} ./mhz >> $LOGFILE echo "\"------stream -v 1 -M 8k -W5 -N 10\"">> $LOGFILE ${RUNPREFIX} ./stream -v 1 -M 8k -W5 -N 10 2>> $LOGFILE echo "\"------stream -v 1 -M 128k -W5 -N 10\"">> $LOGFILE ${RUNPREFIX} ./stream -v 1 -M 128k -W5 -N 10 2>> $LOGFILE echo "\"------stream -v 1 -M 3m -W5 -N 10\"">> $LOGFILE ${RUNPREFIX} ./stream -v 1 -M 3m -W5 -N 10 2>> $LOGFILE for ds in ${stride}; do echo "\"------lat_mem_rd \"">> $LOGFILE ${RUNPREFIX} ./lat_mem_rd $(echo ${sizes} | awk '{print $NF}') ${ds} 2>> $LOGFILE done echo "\"------bw_mem frd \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} frd 2>> $LOGFILE done echo "\"------bw_mem rd \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} rd 2>> $LOGFILE done echo "\"------bw_mem wr \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} wr 2>> $LOGFILE done echo "\"------bw_mem fwr \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} fwr 2>> $LOGFILE done echo "\"------bw_mem fcp \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} fcp 2>> $LOGFILE done echo "\"------bw_mem cp \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} cp 2>> $LOGFILE done echo "\"------bw_mem rdrw \"">> $LOGFILE for ds in ${sizes}; do ${RUNPREFIX} ./bw_mem ${ds} rdwr 2>> $LOGFILE done echo "<<<<<< End of $TITLE" >> $LOGFILE cat $LOGFILE | sed -r -e '/stream -v 1 -M 8k/,/------lat_mem_rd/s/(.*): (.*) (.*)/\1(\3),\2/' -e '/stride=32/,/------bw_mem frd/s/^0.00977.*|^0.01367.*|^0.01758.*|^0.01953.*|^0.02148.*|^0.02539.*|^0.02734.*|^0.0293.*|^0.03516.*|^0.03906.*|^0.04297.*|^0.05078.*|^0.05469.*|^0.05859.*|^0.07031.*|^0.07812.*|^0.08594.*|^0.10156.*|^0.10938.*|^0.11719.*|^0.14062.*|^0.15625.*|^0.17188.*|^0.20312.*|^0.21875.*|^0.23438.*|^0.28125.*|^0.3125.*|^0.34375.*|^0.40625.*|^0.4375.*|^0.46875.*|^0.5625.*|^0.625.*|^0.6875.*|^0.8125.*|^0.875.*|^0.9375.*|^1.125.*|^1.25.*|^1.375.*|^1.625.*|^1.75.*|^1.875.*|^2.25.*|^2.5.*|^2.75.*|^3.25.*|^3.5.*|^3.75.*|^4.5.*|^5.*|^5.5.*|^6.5.*|^7.0.*|^7.5.*//' -e '/stride=1024/,/------bw_mem frd/s/^0.00049.*|^0.00098.*|^0.00195.*|^0.00293.*|^0.00391.*|^0.00586.*|^0.00781.*|^0.01172.*|^0.01562.*|^0.02344.*|^0.03125.*|^0.04688.*|^0.0625.*|^0.09375.*|^0.125.*|^0.1875.*|^0.25.*|^0.375.*|^0.5.*|^6.0000.*|^0.75.*|^3.0.*//' -e '/^$/d' -e 's/"stride/stride/' -e 's/([0-9]) ([0-9])/\1,\2/' > $LOGFILE2 date
here is a link that describe how to use lmbenchmark in detail: http://www.hexiongjun.com/?p=174
No comments:
Post a Comment