Hello,
I am having some issues figuring out how to do checkpointing in Full System Mode with x86. Basically, I want a checkpoint after booting up the system.
I'm a little confused on the particulars. This post seems to indicate that I need to use the MOESI_hammer protocol to do checkpointing properly:
Two things I'm unsure of: how to use the MOESI_hammer protocol when building gem5-gpu with scons, and how to then do checkpointing.
In my attempt to use the MOESI_hammer protocol, I used this command: scons build/MOESI_hammer/gem5.opt --default=X86 EXTRAS=../gem5-gpu/src:../gpgpu-sim/ PROTOCOL=MOESI_hammer GPGPU_SIM=True
I then ran the full sys mode with: build/MOESI_hammer/gem5.opt ../gem5-gpu/configs/fs_fusion.py --kernel=/pathToKernel/x86_64-vmlinux-2.6.22.9 --disk-image=/pathToDiskImage/linux-x86.img --cpu-type=atomic
This seems to work ok, and I am able to connect with m5 term and create a checkpoint, but upon exiting the simulation and trying to restore the checkpoint with: build/MOESI_hammer/gem5.opt ../gem5-gpu/configs/fs_fusion.py --kernel=/pathToKernel/x86_64-vmlinux-2.6.22.9 --disk-image=/pathToDiskImage/linux-x86.img --checkpoint-restore=1 --restore-with-cpu=atomic
I get this error:
fatal: Can't unserialize 'system.physmem.store0:range_size'
@ cycle 198216027826000
[paramIn:build/MOESI_hammer/sim/serialize.cc, line 228]
I previously had this problem with gem5 when I was trying to restore from a checkpoint created with a timing cpu, I believe, and I thought the fix was to create the checkpoint with an atomic cpu, but this didn't seem to work here.
Could someone help address any misconceptions I have and help me figure out what I am doing wrong?