lowRISC / lowRISC/ibex

Spike timeouts in riscv_pmp_full_random_test with experimental-maxperf-pmp-bmfull-icache config

Open
#1,223 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component:DV Type:Bug
Dominant language
SystemVerilog
Stars
2.1k
Forks
810
Avg merge
5d 23h
Merged PRs (30d)
9

Description

I see spike timeouts in DV runs of the test riscv_pmp_full_random_test test. Below is one example, but I see them in multiple runs (not all of them):

2021-01-07T15:23:14.2445665Z Thu, 07 Jan 2021 15:23:14 INFO     Running spike sim: out/seed-23315/instr_gen/asm_tests/riscv_pmp_full_random_test_11.o
2021-01-07T15:23:24.2463257Z Thu, 07 Jan 2021 15:23:24 ERROR    Timeout[10s]: /nas/lowrisc/tools/spike-ibex/20201023-git-255bf1cacc599b1413438c269100f3ecd0eb3352/bin/spike --log-commits --isa=rv32imcb -l out/seed-23315/instr_gen/asm_tests/riscv_pmp_full_random_test_11.o &> out/seed-23315/instr_gen/spike_sim/riscv_pmp_full_random_test.11.log

From the spike log: The last "normal" instruction is the illegal instruction (is that intentional?). After that spike loops until the timeout through three instructions: j, addi, and sw.

core   0: 0xffffffff800018a8 (0x0000ffe2) c.fswsp fs8, 252(sp)
core   0: exception trap_illegal_instruction, epc 0xffffffff800018a8
core   0:           tval 0x0000000000000000
core   0: 0x0000000080001800 (0x0800006f) j       pc + 0x80
3 0x80001800 (0x0800006f)
core   0: 0xffffffff80001880 (0xf8498993) addi    s3, s3, -124
3 0x80001880 (0xf8498993) x19 0x7fffffec
core   0: 0xffffffff80001884 (0x0019a223) sw      ra, 4(s3)
core   0: exception trap_store_access_fault, epc 0xffffffff80001884
core   0:           tval 0x000000007ffffff0

Logs:

Config:

  • Config: experimental-maxperf-pmp-bmfull-icache
  • Seed: 23315
  • Tool: VCS 2020.1

@udinator would you mind having a look?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the timeout with seed 23315, the experimental-maxperf-pmp-bmfull-icache config, and riscv_pmp_full_random_test, then inspect the supplied stdout and Spike logs. Start with the illegal-instruction, jump, and store-access-fault sequence and determine why Spike loops; done means the cause is identified and the test completes without a timeout.

Written by the indexing model from the issue text.

Assessment

Domain
testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.