summaryrefslogtreecommitdiff
path: root/src/mem/cache/write_queue.cc
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2016-04-21 04:48:07 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2016-04-21 04:48:07 -0400
commit13b9d4215dd0b5154f8f27fc6867a07c648a1af9 (patch)
treea47c957482b797e2bfda17b015bc8c7d832b9006 /src/mem/cache/write_queue.cc
parent6c92ee49f1125559ffc7c20cfe96306b9c4de017 (diff)
downloadgem5-13b9d4215dd0b5154f8f27fc6867a07c648a1af9.tar.xz
mem: Deallocate all write-queue entries when sent
This patch removes the write-queue entry tracking previously used for uncacheable writes. The write-queue entry is now deallocated as soon as the packet is sent. As a result we also forego the stats for uncacheable writes. Additionally, there is no longer a need to attach the write-queue entry to the packet.
Diffstat (limited to 'src/mem/cache/write_queue.cc')
-rw-r--r--src/mem/cache/write_queue.cc19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/mem/cache/write_queue.cc b/src/mem/cache/write_queue.cc
index 57489c6f0..7a876b326 100644
--- a/src/mem/cache/write_queue.cc
+++ b/src/mem/cache/write_queue.cc
@@ -75,17 +75,10 @@ WriteQueue::allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt,
void
WriteQueue::markInService(WriteQueueEntry *entry)
{
- if (!entry->isUncacheable()) {
- // a normal eviction, such as a writeback or a clean evict, no
- // more to do as we are done from the perspective of this
- // cache
- entry->popTarget();
- deallocate(entry);
- } else {
- // uncacheable write, and we will eventually receive a
- // response
- entry->markInService();
- readyList.erase(entry->readyIter);
- _numInService += 1;
- }
+ // for a normal eviction, such as a writeback or a clean evict,
+ // there is no more to do as we are done from the perspective of
+ // this cache, and for uncacheable write we do not need the entry
+ // as part of the response handling
+ entry->popTarget();
+ deallocate(entry);
}