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

# To create 4 GB file: This will allocate space on disk
# $ dd < /dev/zero bs=1048576 count=4096 > testfile

#10GB
FILE=/mnt/pmem/10mmaptest
#200GB
#FILE=/mnt/pmem/bigmmaptest

#ACCESS="--randomaccess"

#echo $FILE

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

# Uncomment for random access tests.
#echo $ACCESS

# Uncomment for creating a new file.
#CREATE="--createfile"
# Size in GB
#SIZE="-s 32"
#echo $CREATE ${SIZE}GB


#for TEST in readsyscall
#for TEST in readmmap readsyscall writesyscall
#for TEST in readmmap readsyscall writemmap writesyscall
#    for BLOCK in 512 1024 2048 4096 8192 16384
#    for BLOCK in 4096 8192 16384
for i in {1..2}
#for i in {1}
    do
        for BLOCK in 64 256 1024 4096 8192 16384 2097152 1073741824
        #for BLOCK in 4096 8192 16384 32768 65536 1048576 2097152 6291456
        # 8kMyst
        # 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
        #for BLOCK in 4096 4097
	do
            #echo $BLOCK
	    drop_caches
            ./tmmap -b $BLOCK -f $FILE --$2 --threads $1 ${ACCESS} --silent 
	done
done