Howdy all,

I'm working on a sampling framework for gem5 in the same philosophy as
Simflex (http://parsa.epfl.ch/simflex/). However, fast forwarding Ruby is
proving tricky. I'd like to be able to run the whole simulation with
AtomicSimple, taking checkpoints at the sampling interval, then resume at
each checkpoint and run for a short sample with with Detailed+Ruby.

The obvious choice of taking AtomicSimple checkpoints and restoring with
Detailed+Ruby has a problem during the small 500 cycle window after
restoring from the checkpoint (when its running AtomicSimple) that makes
this choice seem like a non-starter (I'd have to implement atomic memory
access in ruby... oy).

Conversely, switching to Detailed or Timing during the fast-forward for a
few cycles before the checkpoints (so that I can use
--restore-with-cpu=[timing|detailed]) puts me in the Classic+O3 region,
which on x86 has correctness issues.

tl;dr:

Therefore, it seems like I need to switch both CPU and Memory systems
"simultaneously", but there is only support for switching CPU (while gem5
is running). Are there any obvious pitfalls to using this same methodology
for instantiating but not "hooking up" Ruby, then at a later time,
switching it in? I'd have cold caches, but that's ok (problem to be tackled
later).

Thanks for any feedback or insights,

-Mark Browning
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to