summaryrefslogtreecommitdiff
path: root/src/mem/cache/mshr.cc
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2015-10-29 08:48:20 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2015-10-29 08:48:20 -0400
commitd8b7a652e1c460ac5b3b935022d45eeb338f7665 (patch)
treea7e5f76884bf19029c72fe953197520a9aaac0fa /src/mem/cache/mshr.cc
parent58cb57bacc048cc92c8506d0597c033c732da1b2 (diff)
downloadgem5-d8b7a652e1c460ac5b3b935022d45eeb338f7665.tar.xz
mem: Clarify cache MSHR handling on fill
This patch addresses the upgrading of deferred targets in the MSHR, and makes it clearer by explicitly calling out what is happening (deferred targets are promoted if we get exclusivity without asking for it).
Diffstat (limited to 'src/mem/cache/mshr.cc')
-rw-r--r--src/mem/cache/mshr.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mem/cache/mshr.cc b/src/mem/cache/mshr.cc
index 085b8dae0..f71ff6524 100644
--- a/src/mem/cache/mshr.cc
+++ b/src/mem/cache/mshr.cc
@@ -430,11 +430,10 @@ MSHR::promoteDeferredTargets()
void
-MSHR::handleFill(PacketPtr pkt, CacheBlk *blk)
+MSHR::promoteExclusive()
{
- if (!pkt->sharedAsserted()
- && !(hasPostInvalidate() || hasPostDowngrade())
- && deferredTargets.needsExclusive) {
+ if (deferredTargets.needsExclusive &&
+ !(hasPostInvalidate() || hasPostDowngrade())) {
// We got an exclusive response, but we have deferred targets
// which are waiting to request an exclusive copy (not because
// of a pending invalidate). This can happen if the original