Files
linux-kernel-module-cheat/bench-boot
Ciro Santilli 六四事件 法轮功 bc73cebff1 Build the Linux kernel independently from Buildroot
This will allow for other types of root filesystems that don't rely on Buildroot
to be added and used in the future.

Propagate --verbose on all build scripts to see full GCC commands.

build-all: allow for neat subsets

also 9p share rootfs_overlay. TODO document.
2018-10-12 09:30:33 +01:00

91 lines
2.3 KiB
Bash
Executable File

#!/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"
bench "$arch --eval 'm5 exit' --gem5 --gem5-biglittle"
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"
fi