-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Bug in restoring a checkpoint using SimpleProcessor and SwitchableProcessor in ARM & KVM setup #932
Comments
It's doesn't surprise me too much that the What happens if you use just the KVM processor to take the checkpoint and then restore with atomic or the simple timing? |
Hi Jason, I have tested the same experiments with simpleProcessor(), using the same repo and run script.
build/ARM/gem5.opt --outdir=m5out_chkpt_kvm_simpleProcessor configs/example/gem5_library/arm-ubuntu-run-with-kvm.py --take-chkpt=True --chkpt-cpu-switchable=False
build/ARM/gem5.opt --outdir=m5out_rstr_simpleTiming --debug-flags=ExecAll configs/example/gem5_library/arm-ubuntu-run-with-kvm.py --take-chkpt=False --chkpt-dir=m5out_chkpt_kvm_simpleProcessor/checkpoint --rstr-cpu-switchable=False Here's the terminals output:
While using the
|
@giactra do you have any hints as to how to debug taking a checkpoint with Arm KVM and restoring? |
Hi, for the SimpleProcessor case, ARM KVM uses |
I don't know if changing the release will fix the issue, but IMHO we shouldn't just document things better, we should provide a less obscure platform. I think we should remove complexity from the ArmBoard: https://github.com/gem5/gem5/blob/develop/src/python/gem5/components/boards/arm_board.py#L119 Which is changing the release secretly to make it work with KVM depending on the CPUs in use. You want to boot linux without KVM? Use arm-ubuntu-run.py You want to use KVM? Use arm-ubuntu-run-with-kvm.py |
Okay, I'll open a new PR fixing the |
Describe the bug
I am trying to take a checkpoint and restore it in an ARM full-system setup while using KVM CPU to fast-forward the kernel boot. After the boot, it switches to Timing CPU and then takes a checkpoint. Taking the checkpoint works. However, restoring the checkpoint fails.
Affects version
gem5/develop branch
Commit revision ID I am working: 6f90fec
gem5 Modifications
I am using this script:
configs/example/gem5_library/arm-ubuntu-run-with-kvm.py
I updated the script with these changes:
Added a few lines of code so it takes a checkpoint and restores the checkpoint.
It can use either simpleProcessor() or switchableProcessor() in taking a checkpoint and restoring it. For restore, if using SwitchableProcessor(), starts with TIMING , never switches.
extended the command list a bit so taking a checkpoint and restoring it is meaningful.
You can find the script and all of its changes here.
To Reproduce
You can clone the repo and branch I shared previously.
Compile gem5 with command :
m5out_chkpt/checkpoint
. Note: here we assume a switchableProcessor() is used in taking a checkpointTerminal Output
Here's the output once running the command above:
Here's the output once running the command above:
Host ISA
ARM
The text was updated successfully, but these errors were encountered: