mem-cache: Cleaned blocks should be marked as not writable
authorNikos Nikoleris <nikos.nikoleris@arm.com>
Thu, 14 Dec 2017 17:36:09 +0000 (17:36 +0000)
committerNikos Nikoleris <nikos.nikoleris@arm.com>
Wed, 7 Feb 2018 16:11:31 +0000 (16:11 +0000)
commita1fc8b7ecdbadc3e9116594ed0803d2ed2612670
tree64512c48e41b70270040c26ad492b707aca1b084
parent7798ffb6948d12c7f2bc63dc9a3263bb19aa3297
mem-cache: Cleaned blocks should be marked as not writable

A writeclean packet writes a dirty block to the memory below and
therefore sets the dirty flag for the block when the memory below is a
cache. If the block was also marked as writable it can satisfy future
write requests without further requests/snoops. This can lead to
multiple copies of the same block marked as dirty which is not
allowed. This changeset clears the writable flag from the cleaned
block to prevent the cache from satisfying future write requests
without sending a downstream request.

Change-Id: I14d3c62fd33f81b1a8ba62374c8565ccab00a6fe
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/7821
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
src/mem/cache/cache.cc