Dear Yuan,

I faced the same issue, and I solved it using a not very clean trick. So, I
would really appreciate it if someone could tell us the proper solution to
address this issue.
Here is how I fixed it:

1. In the init() method of my component, I check whether this is a "fresh
execution" or a "checkpoint resume". (I pass this information MANUALLY to
gem5 by creation of a file and checking whether it exists).
  Now in the init() method, I schedule my periodic event ONLY if the
execution is fresh, otherwise I won't schedule it (see below).
2. I override the drain() method of my component, and I make sure that
there are no in-flight transactions in my component (You can see an example
of how this method is used in the existing components).
3. I override the drainResume() method, and there, I schedule my periodic
event.

This way the periodic event works both with fresh execution, and with
checkpoint resuming.

I hope that this helps,

Best,

On Fri, Jun 19, 2015 at 12:23 PM, Yuan Yao <[email protected]> wrote:

>  Hi All:
>     Recently I wrote a new component in Garnet, which wakes itself up when
> initialized. After that, it re-shedules periodically.
>     Below is the code for this purpose:
>
>      MyComponent::MyComponent(){
>         ...
>         scheduleEventAbsolute(m_net_ptr->clockEdge(Cycles(1)));
>         ...
>     }
>
>      MyComponents::wakeup(){
>         ...
>         scheduleEvent(Cycles(A_PERIOD));
>         ...
>     }
>
>      The code works fine when I start a full system simulation afresh.
> However, when I restore from a checkpoint, MyComponent never wakes up.
>     I guess the problem is in the event queue. It seems the wake up event
> of MyComponent is not registered successfully. But I am not sure about
> this...
>     Based on this observation, my question is:
>
>          - How to wake up your own component after restoring from a
> checkpoint?
>
>      Best Regards
> ==================================
>
> Yuan Yao (Mr.)
>  PhD Candidate in Electronic and Computer Systems
>
>  School of ICT
>  KTH Royal Institute of Technology
>
> [email protected]
>
>
>
>
>
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>



-- 
Erfan Azarkhish
Micrel Lab - Viale Carlo Pepoli 3/2 - 40123, Bologna
DEI - University of Bologna, Italy
https://www.linkedin.com/in/erfanazarkhish
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to