Files
linux-kernel-module-cheat/bench-boot
Ciro Santilli 六四事件 法轮功 c2983e0e1f bench-boot: start convert to cli function
2019-01-22 00:00:00 +00:00

126 lines
4.1 KiB
Python
Executable File

#!/usr/bin/env python3
import common
from shell_helpers import LF
class Main(common.LkmcCliFunction):
def __init__(self):
super().__init__(
defaults={
'print_time': False,
},
description='''\
Run Linux kernel boot tests and benchmarks.
'''
)
self.add_argument(
'--size',
default=1,
type=int,
help='''\
Size of the tests to run. Scale:
* 1: a few seconds and important
* 2: < 5 minutes and important or a few seconds and not too important
* 3: all
'''
)
def _bench(self, **kwargs):
self.run(**kwargs)
def timed_main(self):
#bench() (
# "${root_dir}/bench-cmd" "./run --arch ${1}${extra_args}" "$self.env['bench_boot']"
#)
#
#newline() (
# echo >> "$self.env['bench_boot']"
#)
#
#gem5_insts() (
# printf "instructions $(./gem5-stat --arch "$1" sim_insts)\n" >> "$self.env['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" >> "$self.env['bench_boot']"
# newline
#)
#
#rm -f "${self.env['bench_boot']}"
self.run = self.import_path_main('run')
run_args = self.get_common_args()
if self.env['emulator'] == 'gem5':
run_args['eval'] = 'm5 exit'
elif self.env['emulator'] == 'qemu':
run_args['eval'] = '/poweroff.out'
if (self.env['emulator'] == 'qemu' or
(self.env['emulator'] == 'gem5' and self.env['size'] >= 2)):
self._bench(**run_args)
if self.env['host_arch'] == self.env['arch']:
# TODO: find out why it fails.
if self.env['emulator'] != 'gem5':
self._bench(kvm=True, **run_args)
# newline
if self.env['emulator'] == 'qemu' and self.env['size'] >= 2:
self._bench(trace='exec_tb', **run_args)
# qemu_insts "$arch"
if self.env['emulator'] == 'gem5' and self.env['size'] >= 3:
self._bench(
extra_emulator_args=[
'--cpu-type',
'DerivO3CPU',
'--caches',
'--l2cache',
'--l1d_size=1024kB',
'--l1i_size=1024kB',
'--l2_size=1024kB',
'--l3_size=1024kB',
],
**run_args
)
# gem5_insts "$arch"
#arch=arm
#bench "$arch --eval '/poweroff.out'"
#newline
#if [ self.env['size'] -ge 2 ]; then
# bench "$arch --eval '/poweroff.out' --trace exec_tb"
# qemu_insts "$arch"
# bench "$arch --eval 'm5 exit' --emulator gem5"
# gem5_insts "$arch"
#fi
#if [ self.env['size'] -ge 3 ]; then
# bench "$arch --eval 'm5 exit' --emulator gem5 -- --cpu-type=HPI ${caches}"
# gem5_insts "$arch"
#fi
#arch=aarch64
#bench "$arch --eval '/poweroff.out'"
#newline
#if [ self.env['size'] -ge 2 ]; then
# bench "$arch --eval '/poweroff.out' --trace exec_tb"
# qemu_insts "$arch"
# bench "$arch --eval 'm5 exit' --emulator gem5"
# gem5_insts "$arch"
#fi
#if [ self.env['size'] -ge 3 ]; then
# bench "$arch --eval 'm5 exit' --emulator gem5 -- --cpu-type=HPI ${caches}"
# gem5_insts "$arch"
# #bench "$arch --eval 'm5 exit' --emulator gem5 --gem5-script biglittle"
# #gem5_insts "$arch"
# bench "$arch --eval 'm5 exit' --emulator gem5 --gem5-build-type fast"
# gem5_insts "$arch"
# bench "$arch --eval 'm5 exit' --emulator gem5 --gem5-build-type debug"
# gem5_insts "$arch"
#fi
if __name__ == '__main__':
Main().cli_exit()