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
