summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorSascha Bischoff <sascha.bischoff@arm.com>2013-02-19 05:56:06 -0500
committerSascha Bischoff <sascha.bischoff@arm.com>2013-02-19 05:56:06 -0500
commit86a4d092691bdcdc7b60f7cacd7d5b5c54d9a1ca (patch)
tree6fdc88e25bc34f2a5275c21c27e4c72608303cbf /src/arch
parent0622f30961fc32b967bb1ef784afc5a205b16f6e (diff)
downloadgem5-86a4d092691bdcdc7b60f7cacd7d5b5c54d9a1ca.tar.xz
mem: Fix SenderState related cache deadlock
This patch fixes a potential deadlock in the caches. This deadlock could occur when more than one cache is used in a system, and pkt->senderState is modified in between the two caches. This happened as the caches relied on the senderState remaining unchanged, and used it for instantaneous upstream communication with other caches. This issue has been addressed by iterating over the linked list of senderStates until we are either able to cast to a MSHR* or senderState is NULL. If the cast is successful, we know that the packet has previously passed through another cache, and therefore update the downstreamPending flag accordingly. Otherwise, we do nothing.
Diffstat (limited to 'src/arch')
0 files changed, 0 insertions, 0 deletions