1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/usr/bin/env bash
- set -eu
- root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
- test_size=1
- while [ $# -gt 0 ]; do
- case "$1" in
- --size)
- # 1: a few seconds and important
- # 2: < 5 minutes and important or a few seconds and not too important
- # 3: all
- test_size="$2"
- shift 2
- ;;
- esac
- done
- if [ $# -gt 1 ]; then
- extra_args=" $*"
- else
- extra_args=
- fi
- getvar="${root_dir}/getvar"
- common_bench_boot="$("$getvar" bench_boot)"
- caches='--caches --l2cache --l1d_size=1024kB --l1i_size=1024kB --l2_size=1024kB --l3_size=1024kB'
- bench() (
- "${root_dir}/bench-cmd" "./run --arch ${1}${extra_args}" "$common_bench_boot"
- )
- newline() (
- echo >> "$common_bench_boot"
- )
- gem5_insts() (
- printf "instructions $(./gem5-stat --arch "$1" sim_insts)\n" >> "$common_bench_boot"
- newline
- )
- qemu_insts() (
- common_arch="$1"
- ./qemu-trace2txt --arch "$common_arch"
- common_qemu_trace_txt_file="$("$getvar" --arch "$common_arch" qemu_trace_txt_file)"
- printf "instructions $(wc -l "${common_qemu_trace_txt_file}" | cut -d' ' -f1)\n" >> "$common_bench_boot"
- newline
- )
- rm -f "${common_bench_boot}"
- arch=x86_64
- bench "${arch} --eval '/poweroff.out'"
- newline
- bench "${arch} --eval '/poweroff.out' --kvm"
- newline
- if [ "$test_size" -ge 2 ]; then
- bench "${arch} --eval '/poweroff.out' --trace exec_tb"
- qemu_insts "$arch"
- bench "$arch --eval 'm5 exit' --gem5"
- gem5_insts "$arch"
- fi
- #bench "$arch --eval 'm5 exit' --gem5 -- --cpu-type=DerivO3CPU ${caches}"
- #gem5_insts "$arch"
- arch=arm
- bench "$arch --eval '/poweroff.out'"
- if [ "$test_size" -ge 2 ]; then
- bench "$arch --eval '/poweroff.out' --trace exec_tb"
- qemu_insts "$arch"
- bench "$arch --eval 'm5 exit' --gem5"
- gem5_insts "$arch"
- fi
- if [ "$test_size" -ge 3 ]; then
- bench "$arch --eval 'm5 exit' --gem5 -- --cpu-type=HPI ${caches}"
- gem5_insts "$arch"
- fi
- arch=aarch64
- bench "$arch --eval '/poweroff.out'"
- newline
- if [ "$test_size" -ge 2 ]; then
- bench "$arch --eval '/poweroff.out' --trace exec_tb"
- qemu_insts "$arch"
- bench "$arch --eval 'm5 exit' --gem5"
- gem5_insts "$arch"
- fi
- if [ "$test_size" -ge 3 ]; then
- bench "$arch --eval 'm5 exit' --gem5 -- --cpu-type=HPI ${caches}"
- gem5_insts "$arch"
- #bench "$arch --eval 'm5 exit' --gem5 --gem5-script biglittle"
- #gem5_insts "$arch"
- bench "$arch --eval 'm5 exit' --gem5 --gem5-build-type fast"
- gem5_insts "$arch"
- bench "$arch --eval 'm5 exit' --gem5 --gem5-build-type debug"
- gem5_insts "$arch"
- fi
|