diff options
author | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2016-12-05 16:48:18 -0500 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2016-12-05 16:48:18 -0500 |
commit | d28c2906f4125ce8704ce9cefa471f1a5050eeae (patch) | |
tree | d08ceec1036d613e97b858ae077afdc3225bf83a /src/mem/cache/cache.cc | |
parent | f7a5de3becd60b93d89684f8e387046c497c183a (diff) | |
download | gem5-d28c2906f4125ce8704ce9cefa471f1a5050eeae.tar.xz |
mem: Keep track of allocOnFill in the TargetList
Previously the information of whether a response was allocating or not
was a property of the MSHR. This change makes this flag a property of
the TargetList. Differernt TargetLists, e.g. the targets and the
deferred targets lists might have different values. Additionally, the
information about whether each of the target expects an allocating
response is stored inside the TargetList container. This allows for
repopulating the flag in case some of the targets are removed.
Change-Id: If3ec2516992f42a6d9da907009ffe3ab8d0d2021
Reviewed-by: Andreas Hansson <andreas.hansson@arm.com>
Reviewed-by: Stephan Diestelhorst <stephan.diestelhorst@arm.com>
Diffstat (limited to 'src/mem/cache/cache.cc')
-rw-r--r-- | src/mem/cache/cache.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc index e3f2777ef..db982c1f0 100644 --- a/src/mem/cache/cache.cc +++ b/src/mem/cache/cache.cc @@ -1318,7 +1318,7 @@ Cache::recvTimingResp(PacketPtr pkt) DPRINTF(Cache, "Block for addr %#llx being updated in Cache\n", pkt->getAddr()); - blk = handleFill(pkt, blk, writebacks, mshr->allocOnFill); + blk = handleFill(pkt, blk, writebacks, mshr->allocOnFill()); assert(blk != nullptr); } @@ -1369,7 +1369,8 @@ Cache::recvTimingResp(PacketPtr pkt) // any deferred targets if possible mshr->promoteWritable(); // NB: we use the original packet here and not the response! - blk = handleFill(tgt_pkt, blk, writebacks, mshr->allocOnFill); + blk = handleFill(tgt_pkt, blk, writebacks, + mshr->allocOnFill()); assert(blk != nullptr); // treat as a fill, and discard the invalidation |