Gem5のビルドが完了して簡単なテストが実行できたので、次はリグレッションテストを実行してみたい。
Gem5にはあらかじめRISC-V向けの命令セットのテストパタンが用意されている。これをビルドして、全て流してみればよいわけだ。
cd tests/test-progs/asmtest/src/riscv/ make # テストパタンがコンパイルされる。 ./run-tests.py # 注意。このまま実行するとCPUを使い切る
上記のrun-test.py
をそのまま実行するとCPUとメモリを使い切って非常に危険なので、CPU数を制限する。
オプションで制限できるかと思っていたのだが、出来ないようなので決め打ちでCPUコア数を16に制限した。
diff --git a/tests/test-progs/asmtest/src/riscv/run-tests.py b/tests/test-progs/asmtest/src/riscv/run-tests.py index 53a8476c0..930896777 100755 --- a/tests/test-progs/asmtest/src/riscv/run-tests.py +++ b/tests/test-progs/asmtest/src/riscv/run-tests.py @@ -118,7 +118,7 @@ for test in tests: ]) # execute all jobs -job_pool = Pool(processes = n_tests) +job_pool = Pool(processes = 16) job_outputs = job_pool.map(subprocess.call, job_cmds) job_pool.close()
このままテストパタンを流すと、しばらくして実行が完了する。
test-summary.out
を参照する。テストがいくつか落ちていることが分かる。25/458本がFailしていた。
rv64samt-ps-sysclone_d-AtomicSimpleCPU failed - signal = 6 rv64samt-ps-sysclone_d-TimingSimpleCPU failed - signal = 6 rv64samt-ps-sysclone_d-MinorCPU failed - signal = 6 rv64samt-ps-sysclone_d-DerivO3CPU failed - signal = 6 rv64samt-ps-sysfutex1_d-AtomicSimpleCPU failed - status = 1 rv64samt-ps-sysfutex1_d-TimingSimpleCPU failed - status = 1 rv64samt-ps-sysfutex1_d-MinorCPU failed - signal = 6 rv64samt-ps-sysfutex1_d-DerivO3CPU failed - status = 1 rv64samt-ps-sysfutex2_d-AtomicSimpleCPU passed rv64samt-ps-sysfutex2_d-TimingSimpleCPU passed rv64samt-ps-sysfutex2_d-MinorCPU failed - signal = 6 rv64samt-ps-sysfutex2_d-DerivO3CPU passed rv64samt-ps-sysfutex3_d-AtomicSimpleCPU failed - status = 1 rv64samt-ps-sysfutex3_d-TimingSimpleCPU failed - status = 1 rv64samt-ps-sysfutex3_d-MinorCPU failed - signal = 6 rv64samt-ps-sysfutex3_d-DerivO3CPU failed - status = 1 rv64samt-ps-sysfutex_d-AtomicSimpleCPU passed rv64samt-ps-sysfutex_d-TimingSimpleCPU passed rv64samt-ps-sysfutex_d-MinorCPU failed - signal = 6 rv64samt-ps-sysfutex_d-DerivO3CPU passed rv64ua-ps-amoadd_d-AtomicSimpleCPU passed rv64ua-ps-amoadd_d-TimingSimpleCPU passed rv64ua-ps-amoadd_d-MinorCPU passed rv64ua-ps-amoadd_d-DerivO3CPU passed rv64ua-ps-amoadd_w-AtomicSimpleCPU passed ...