On 7/11/2023 3:20 PM, Ayaz Akram via gem5-users wrote:
Hi John,

If you are checking if the pkt is write when pkt->hasData() condition is true in recvAtomicLogic() function, the check (pkt_is_write) will always be false. The reason is that a write pkt would have already written its data to the memory (abstract memory) in the previous line of code "mem_intr->access(pkt);" That access to the memory interface converts a request pkt into a response pkt and adds or removes data from the pkt (depending on if the request was a read or a write). Also, in this implementation, the accessLatency will only be returned if the request was a read request i.e., the write requests would not see any latency.

Dear Ayaz - That makes sense to me, but I could not find where
the dropping of the data happens in the code.  The makeResponse
function on packets does not affect the data, and neither does
the writeData function (which grabs the data and copies it to
the memory).  If you know where this happens, it might improve
John's and my understandings of how this code path works.

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