Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification on the behaviour of spike in debug mode and in normal mode for multicore scenario needed #1938

Open
bantierr opened this issue Mar 18, 2025 · 0 comments

Comments

@bantierr
Copy link

bantierr commented Mar 18, 2025

Hi,

I need some help to understand the differences that can arise between spike in debug mode (-d option, not the rv mode) and in normal mode when running multi-core systems.
I just stumbled across a scenario where the MINSTRET CSR has a different value when running spike in debug mode and in normal mode.
I am using 2 cores, and the difference arise when a core receives a software interrupt. The 2 core are synchronized (double checked using commit log).

The scenario is:

  • core 0 goes into low power mode (and store a byte to an address to signal to core 1 it is WFI)
  • core 1 wakes up core 0 (once the flag is there) using an software interrupt
  • core 0 starts executing again
  • core 0 reads MISNTRET

I was wondering if this behavior could be normal due to the multi-core scenario ?

(also, I am aware some behavioral changes are to expected, as mentioned in #936, but I would have assumed the number of instructions would be identical)

Please, tell me if you need a concrete example or if the explanation is not precise enough.

Thank you for your help,
Best,
Quentin

@bantierr bantierr changed the title Clarification on the behaviour of spike in debug mode and in normal model for multicore scenario needed Clarification on the behaviour of spike in debug mode and in normal mode for multicore scenario needed Mar 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant