diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2015-11-06 03:26:35 -0500 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2015-11-06 03:26:35 -0500 |
commit | 8bc925e36d0e5de7e70a6d5bf2b1824649932599 (patch) | |
tree | 8ffddb6d34d4c574e9d43b75c5be804a1d0d328e /src/mem/simple_mem.cc | |
parent | 8e55d51aaa71d71c7058e8ee15c89d3482991ba2 (diff) | |
download | gem5-8bc925e36d0e5de7e70a6d5bf2b1824649932599.tar.xz |
mem: Align rules for sinking inhibited packets at the slave
This patch aligns how the memory-system slaves, i.e. the various
memory controllers and the bridge, identify and deal with sinking of
inhibited packets that are only useful within the coherent part of the
memory system.
In the future we could shift the onus to the crossbar, and add a
parameter "is_point_of_coherence" that would allow it to sink the
aforementioned packets.
Diffstat (limited to 'src/mem/simple_mem.cc')
-rw-r--r-- | src/mem/simple_mem.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mem/simple_mem.cc b/src/mem/simple_mem.cc index 7e350feb6..639ccbe31 100644 --- a/src/mem/simple_mem.cc +++ b/src/mem/simple_mem.cc @@ -97,17 +97,15 @@ SimpleMemory::recvFunctional(PacketPtr pkt) bool SimpleMemory::recvTimingReq(PacketPtr pkt) { + // sink inhibited packets without further action if (pkt->memInhibitAsserted()) { - // snooper will supply based on copy of packet - // still target's responsibility to delete packet pendingDelete.reset(pkt); return true; } - // we should never get a new request after committing to retry the - // current one, the bus violates the rule as it simply sends a - // retry to the next one waiting on the retry list, so simply - // ignore it + // we should not get a new request after committing to retry the + // current one, but unfortunately the CPU violates this rule, so + // simply ignore it for now if (retryReq) return false; |