diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2016-05-26 11:56:24 +0100 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2016-05-26 11:56:24 +0100 |
commit | e3e808416f92d5558d17731fd31c002d84d40181 (patch) | |
tree | a1e613974a368d5680ad6e90b6701b1ed5c4b4ec /.hgignore | |
parent | 4d577ac8f18e08290e4536803d564ad85e3c3a88 (diff) | |
download | gem5-e3e808416f92d5558d17731fd31c002d84d40181.tar.xz |
mem: Fix memory leak in handling of deferred snoops
This patch fixes a memory leak where deferred snoop packets never got
deallocated. On the call to MSHR::handleSnoop these snoops were
treated as if a response will be sent, as the MSHR was
pendingModified. Consequently, a copy of the packet was created and
added to the MSHR targets. However, an preceeding target to the same
MSHR, originally from a CPU, was serviced before the snoop, and caused
the block to be invalidated. This happens for ReadExReq and
UpgradeReq.
Note that the original snoop will receive a response, just not from
the cache in question, but instead from the cache upstream that issued
the ReadExReq or UpgradeReq.
Change-Id: I4ac012fbc8a46cf693ca390fe9476105d444e6f4
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to '.hgignore')
0 files changed, 0 insertions, 0 deletions