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
The checkpoint feature may not have successfully saved and restored some data. #802
Comments
Sounds like PMP register state isn't saved at the checkpoint. Thanks for the detailed bug report! Feel free to contribute a change to fix this! I can't give an estimate for when someone on my team will be able to take a look, but it will be at least a week or more. |
You can look at the To debug this, here's what I'd do:
|
I think resolving this issue might be a major undertaking. I saw in the gem5 documentation under the checkpoints section as shown in the figure below. Unfortunately, in my configuration, I am using the Ruby memory model while also using the MESI protocol. I don't quite understand what the relationship is between checkpoints and cache protocols. I see that the serialization and deserialization methods are defined in the base class Serializable, and SimObject is a subclass of Serializable. At the same time, almost all components (including storage components, temporary ones, and those that are commit targets) inherit from SimObject. Not all storage components implement serialization and deserialization methods, right? So why would different cache protocols affect checkpoints? These questions might seem silly, but I need to emphasize that I am a beginner with gem5, and I am already frazzled by the extremely slow simulation speed. |
Describe the bug
The checkpoints are malfunctioning.
Affects version
Commit bae3487 (HEAD -> stable, tag: v23.1.0.0, origin/stable, origin/HEAD)
gem5 Modifications
None
To Reproduce
git clone https://github.com/gem5/gem5 sudo apt install build-essential git m4 scons zlib1g zlib1g-dev \ libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ python3-dev libboost-all-dev pkg-config python3-tk # Modify the configuration to make PROTOCOL="MESI_Three_Level" take effect. scons build/RISCV/gem5.{variant} -j {cpus}
. ├── checkpoints ├── gem5 ├── keystone ├── m5out ├── riscv-fs.py
Terminal Output
Expected behavior
I want to recover from checkpoints, executing the secure program should not result in PMP access error loops. Checkpoints may have lost some crucial data
Host Operating System
Ubuntu 22.04
Host ISA
X86
Additional information
Add any other information which does not fit in the previous sections but may be of use in fixing this bug.
The text was updated successfully, but these errors were encountered: