Comments (4)
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.
from gem5.
I have added serialization and deserialization code for PMP. After restoring from a checkpoint, I did not encounter PMP access errors during the subsequent execution of the secure program. However, a new issue emerged, and here is the terminal output.
At this point, the TTY has become unresponsive, and attempting to save the checkpoint and restore results in an inability to proceed in the terminal. How can I locate and resolve this issue. More specifically, how can I overview what data is stored in the checkpoint and which data can be omitted to reduce overhead。
from gem5.
You can look at the .cpt
file to see all of the data that's stored.
To debug this, here's what I'd do:
- Use the
Exec
debug flag after you take the checkpoint for the next few thousand instructions and then do the same thing on the checkpoint restore. I would compare these traces and look for anything that seems "off" - My first guess is that there's something missing in the
takeOverFrom
function somewhere in the RISC-V ISA.
from gem5.
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.
from gem5.
Related Issues (20)
- sim-se, cpu-o3, arch-x86: SMT fails under SE due to disconnected interrupt request port
- Help, how to support cross page hardware L2 prefetch in ARM core? [ARM][Prefetcher][TLB]
- "fatal: ... pio is already connected to interrupt_out_port" occurring when multiple interrupts present HOT 1
- cpu-o3: O3 crashes on simple program
- mem-ruby: Ruby functional read failures with MESI Three-Level caches HOT 3
- cpu-o3: executing MFENCE in two parallel SMT threads causes hang HOT 3
- Indirect Memory Prefetcher only performs a single indirect prefetch even if the prefetch distance is bigger than 1 HOT 2
- cpu-o3: Assertion failure in CPU::removeThread() on SMT thread exit
- arch-riscv: Boot to linux using Version 3.0.0 of riscv-ubuntu-20.04-boot hangs with O3 CPU HOT 1
- cpu-kvm: KVM CPU reports zero instructions simulated when running on Intel Alder Lake host HOT 1
- gem5::statistics::Counter are 52-bit not 64-bit HOT 3
- Immediate crash when running KVM CPU in SE mode HOT 2
- AVX KVM Xsave issue HOT 3
- Docker Image for Ubuntu 20.04 in the gem5 documentation is an incorrect version. HOT 2
- how to simulate a Multi-level NUMA in gem5?
- A problem I suffered about clk_domian AttributeError in proxy.py
- c.jr/c.jalr semantic wrong HOT 4
- SST Support is Broken HOT 3
- sim-se: gpu-tests are failing HOT 7
- arch-riscv: vector tail/mask policy dependencies HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gem5.