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

Reply via email to