mem-ruby: fix the condition for stale WriteCleanFull

WriteCleanFull can be requested for the cache line in SD state (e.g.
Local eviction of a cache line in SD_RSC state). In this case, the
requestor is the owner of the cache line,
but it doesn't have it with exclusive right.
Thus, 'ownerIsExcl == false' should be removed from the stale condition.

Change-Id: I4d34021ac31b2e8600c24689a03a3b8fa18aa1f7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/58412
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
Daecheol You
2022-03-11 12:55:34 +09:00
parent eaf23bcd9f
commit 073dc853f4

View File

@@ -334,7 +334,7 @@ in_port(reqRdyPort, CHIRequestMsg, reqRdy, rank=3,
}
} else if (in_msg.type == CHIRequestType:WriteCleanFull) {
if (is_invalid(dir_entry) || (dir_entry.ownerExists == false) ||
(dir_entry.ownerIsExcl == false) || (dir_entry.owner != in_msg.requestor)) {
(dir_entry.owner != in_msg.requestor)) {
trigger(Event:WriteCleanFull_Stale, in_msg.addr, cache_entry, tbe);
}
} else if (in_msg.type == CHIRequestType:Evict) {