WiscSort / pmem_benchmark / dev_runtest.sh
dev_runtest.sh
Raw
#!/bin/bash


FILE=/dev/dax1.0
ACCESS="--randomaccess"
SIZE="-s 50"

PERF="perf record -g -e page-faults -e dTLB-load-misses -e LLC-load-misses  -e offcore_requests.all_data_rd -e offcore_response.all_code_rd.llc_miss.any_response -e kmem:* -e filemap:* -e huge_memory:* -e pagemap:* -e dtlb_load_misses.walk_completed_1g -e dtlb_load_misses.walk_completed_2m_4m -e dtlb_load_misses.walk_completed_4k -e dtlb_load_misses.walk_completed  -e dtlb_load_misses.walk_duration -e dtlb_load_misses.miss_causes_a_walk -e dtlb_load_misses.stlb_hit -e dtlb_load_misses.stlb_hit_2m -e dtlb_load_misses.stlb_hit_4k -e page-faults -e major-faults -e minor-faults -e cycles -e ext4:* -e vmscan:*"
#PERF="perf record -e cycles -e dTLB-loads -e dTLB-load-misses -e page-faults"

drop_caches() {
    sync;
    (echo 1) > /proc/sys/vm/drop_caches;
}

# Use the block below to run a single test while collecting profiling info
PROFILING_RUN=0
if [ ${PROFILING_RUN} = 1 ]
then
   echo "Doing a profiling run..."
   BLOCK=16384
   #BLOCK=64
   TEST=readmmap
   echo $FILE $BLOCK $TEST

   drop_caches
#   $PERF ./mmapVsys -b ${BLOCK} --${TEST} -f ${FILE} ${ACCESS}
   exit 0
fi


#To be used with run_multi.sh
for i in {1..2}
    do
        for BLOCK in 64 256 1024 4096 8192 16384 2097152 1073741824
        #for BLOCK in 4096 8192 16384 32768 65536 1048576 2097152 6291456
        # for BLOCK in 4080 4084 4088 4092 4092 4096 4097 4098 4099 4100 4104 4108 4112 4128 4144 4160 4224 4288 4352 4608 4864 5120 6144 7138 8192
	do
	    drop_caches
            ./tmmap_devdax -b $BLOCK -f $FILE --$2 --threads $1 ${ACCESS} ${SIZE} --silent 
	done
done