#!/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