From: Andreas Hansson Date: Wed, 14 Oct 2015 17:32:28 +0000 (-0400) Subject: mem: Pass snoop retries through the CommMonitor X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2a1f49fae6f4399d976a551a1715709faf1b19da;p=gem5.git mem: Pass snoop retries through the CommMonitor Allow the monitor to be placed after a snooping port, and do not fail on snoop retries, but instead pass them on to the slave port. --- diff --git a/src/mem/comm_monitor.cc b/src/mem/comm_monitor.cc index 85d7be2f4..fa1950be3 100644 --- a/src/mem/comm_monitor.cc +++ b/src/mem/comm_monitor.cc @@ -344,6 +344,12 @@ CommMonitor::recvTimingSnoopResp(PacketPtr pkt) return masterPort.sendTimingSnoopResp(pkt); } +void +CommMonitor::recvRetrySnoopResp() +{ + slavePort.sendRetrySnoopResp(); +} + bool CommMonitor::isSnooping() const { diff --git a/src/mem/comm_monitor.hh b/src/mem/comm_monitor.hh index df61b0b80..5ccce8037 100644 --- a/src/mem/comm_monitor.hh +++ b/src/mem/comm_monitor.hh @@ -167,6 +167,11 @@ class CommMonitor : public MemObject mon.recvReqRetry(); } + void recvRetrySnoopResp() + { + mon.recvRetrySnoopResp(); + } + private: CommMonitor& mon; @@ -248,6 +253,8 @@ class CommMonitor : public MemObject bool recvTimingSnoopResp(PacketPtr pkt); + void recvRetrySnoopResp(); + AddrRangeList getAddrRanges() const; bool isSnooping() const;