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>
This commit is contained in:
4
src/mem/cache/mshr.cc
vendored
4
src/mem/cache/mshr.cc
vendored
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user