On Sat, 7 Apr 2012, Mark Browning wrote:
I've been trying out gem5 for the first time these past few days, but so
far I've found the process pretty easy to pick up on.
However, I have a question about creating checkpoints when using the MOESI
CC protocol. Earlier posts on the mailing list this month seemed to
indicate that the MOESI_hammer protocol could be checkpointed, but that
other Ruby protocols had trouble (Nilay Vaish | 25 Mar 15:54). Is this
still current? With a very recent checkout, the following simulation boots
fine (though it takes 48 hours to boot the kernel), but when I tried to run
`m5 checkpoint`, the simulator exited. Very unfortunately, I don't have the
stdout or stderr of the gem5 process, which I realize would be critical to
debugging this particular problem.
M5_PATH=. ../gem5.hammer.fast -d hammer ../configs/example/ruby_fs.py
--ruby --cpu-type=timing --caches -n 64 --kernel=x86_64-vmlinux-2.6.28.4-smp
I used the kernel from utexas' PARSEC page, the disk image is the
unmodified example image from
http://www.m5sim.org/dist/current/x86/x86-system.tar.bz2
The binary was built with the following built_opts:
TARGET_ISA = 'x86'
CPU_MODELS = 'AtomicSimpleCPU,O3CPU,TimingSimpleCPU'
PROTOCOL = 'MOESI_hammer'
After the checkpoint, I appear to have m5.cpt and two COW disks. However,
running the above command with '-r 1' to resume causes a debug assertion
failure when a CPU is missing an interrupt controller.
I know I'm in uncharted waters with X86 FS with Ruby, but it "Should Work",
and I've seen casual traffic of other users running the PARSEC benchmarks
on X86 FS.
a) Any clue why my MOESI_hammer checkpoints are failing and crashing?
While restoring from a checkpoint, you might want to mention the CPU type
to used for restoration. Use the option --restore-cpu-type=<type of cpu>
b) How hard would it be and what roughly would be required to get
checkpointing working with other CC protocols, like MOESI_CMP_directory?
Why do you need checkpointing to work with other protocols? When you
restore from a checkpoint, you can use any of the protocols as the
checkpoint it self is independent of any protocol specific information.
c) Is it possible to create a checkpoint with the AtomicCPU and Classic
memory, then resume with a more detailed CPU and memory system, assuming
all cache sizes and memory stayed the same?
Should be. You can either try using the option mentioned above or you can
try to switch cpu at the run time. Look for options in the file
configs/common/Options.py.
--
Nilay
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users