Hi Eliot,

Based on my understanding, when pkt->makeResponse() is called it updates
the "cmd" of the pkt with the appropriate responseCommand (this line of
code: cmd = cmd.responseCommand();) . If you look at
"MemCmd::commandInfo[]"  in packet.cc, the response command for a
"WriteReq" command is "WriteResp". And the attributes of a "WriteResp"
command don't have "HasData", which is why the response pkt will return
false on a "hasData()" check.

You might also want to look at the struct CommandInfo in packet.hh.

-Ayaz

On Tue, Jul 11, 2023 at 2:15 PM Eliot Moss via gem5-users <
gem5-users@gem5.org> wrote:

> On 7/11/2023 3:03 PM, John Smith wrote:
> > Thanks for responding, Elliot. I somewhat understand that after the
> write is accomplished, the
> > returning packet won't have the data. But still, why is the returned
> value 0 in that case? Shouldn't
> > it still be equal to the memory access latency.
>
> In the Atomic case this code is assuming the write can
> be absorbed into a write buffer, so there is no additional
> latency visible to the user.  Of course it is *possible* to
> saturate the buffers, and if you want a more accurate
> accounting you can use a Timing model instead.
>
> EM
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to