In fact, we want to replace the current ruby eventqueue highjacking, with
calling the c++ simulate() function inside the ruby topology unserialize
function. To do so, we should first ensure that topology unserialize is
called before all other unserialize functions. In this way, after the ruby
caches are warmed up, the eventqueue, curTick, and etc. are reset to the
correct value.
Brad's suggestion is one way to ensure the order of unserialization.

Nate, would you please elaborate your idea?

Somayeh

>> As I mentioned to you over the phone, I think the best way to manipulate
>> the order of the simObjectList is to modify the SimObject constructor to
>> push the associated SimObject pointer on the front of the list instead
>> of the back.  You could do this by simply adding a Boolean parameter to
>> SimObject that indicates whether to push it on the front or the back of
>> the list.  Eventually, we may want to make that some sort of integer for
>> finer grain order, but for now a simple bool is probably easiest.
>>
>> Others, please speak up if you disagree.  Otherwise I believe this is
>> the direction Somayeh is going to take.
>
> This sounds super sketchy.  Why not just get rid of the ruby event
> queue and start using the main event queue?  It's really not that much
> work.  All you need to do is convert cycles to ticks.
> When we did this for M5 it was actually pretty quick.
>
> We could even create a ClockedObject that has a clock and some
> functions for scheduling based on cycles.  This would make it even
> easier.
>
>   Nate
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
>


_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to