On 7/15/2022 7:54 AM, Abdlerhman Abotaleb wrote:
> But in such case, GEM5 code will fail without my memory object being added 
and this is not the case,
> it was working perfectly.
> Because, omitting the added simulation object, the packet pointer "pkt" is 
being sent to the
> crossbar then the memory controller.

Let me try again to explain the scenario I was thinking of.

The timing packet originates from a component such as the cpu.  In stages, as
timing delay time are reached, it is forwarded, component to component, to the
memory, then it is turn into a response, and sent back through the components,
generally in several steps, according to delays.  Then it is destroyed.

Your change put a pointer to the packet into some private queue - but the
packet was *also* sent along its regular path.  By the time you pull the
packet out of your queue and look at it, it has flowed through the whole
regular process and been deleted.

By making a copy, you of course avoid that - but the packet may be being
processed twice.

As I've said, I could be wrong about what is going on, but this is the
possible scenario I was trying to explain.

Regards - Eliot
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to