Hi,
There is an unreleased patch that implements cache warmup at Ruby side.
The key advantage of this patch is that it implements Unserialize
function for Ruby cache hierarchy. On the other hand, it hijacks Ruby
Event Queue APIs (not gem5 standard event queue). To further unify Ruby
with the rest of gem5, I want to remove the current eventqueue
highjacking and try to use the main gem5 eventqueue to run the cache
warmup trace.
One solution is to call the c++ simulate() function inside the ruby
Unserialize function, but we should ensure that it is called before all
other unserialize functions, including the Globals and MainEventQueue
(i.e., before the curTick and the rest of gem5). In order to implement
this, the easiest way is to reorder the SimObjects during the
serialization process, rather than some complicated analysis during the
unserialize process.The order SimObjects are serialized is the order
they are initialized and configured. We can reorder the list of
SimObjects before traversing it in SimObject::serializeAll.
I am not sure if this easiest way is actually the best way too! That
would be great if you give me your comments and feedbacks on this
implementation technique?
Regards,
Somayeh
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev