summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2017-12-19 14:44:11 +0000
committerNikos Nikoleris <nikos.nikoleris@arm.com>2018-02-07 16:11:40 +0000
commitb72d69c5caa382902fc200086e861e92ef883163 (patch)
tree5e9d5761f066fb03be2171909de3cdd3d0faa7a8
parenta1fc8b7ecdbadc3e9116594ed0803d2ed2612670 (diff)
downloadgem5-b72d69c5caa382902fc200086e861e92ef883163.tar.xz
mem-cache: Only pendingModified MSHRs can satisfy CMO snoops
We set the satisfied flag when a cache clean request encounters: 1) a block with the dirty bit set, or 2) a pending modified MSHR which means that the cache will get copy of the block that will be soon modified. This changeset fixes a previous bug that set the satisfied flag on snooping MSHR hits even the pendingModified flags was not set. Change-Id: I4968c4820997be5cc1238148eea12a1ba39837d4 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Sudhanshu Jha <sudhanshu.jha@arm.com> Reviewed-on: https://gem5-review.googlesource.com/7822 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--src/mem/cache/mshr.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mem/cache/mshr.cc b/src/mem/cache/mshr.cc
index f1a9b985e..493b7f021 100644
--- a/src/mem/cache/mshr.cc
+++ b/src/mem/cache/mshr.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2013, 2015-2017 ARM Limited
+ * Copyright (c) 2012-2013, 2015-2018 ARM Limited
* All rights reserved.
*
* The license below extends only to copyright in the software and shall
@@ -452,7 +452,7 @@ MSHR::handleSnoop(PacketPtr pkt, Counter _order)
postInvalidate = true;
}
- if (pkt->isClean()) {
+ if (isPendingModified() && pkt->isClean()) {
pkt->setSatisfied();
}
}