diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2016-04-21 04:48:07 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2016-04-21 04:48:07 -0400 |
commit | 13b9d4215dd0b5154f8f27fc6867a07c648a1af9 (patch) | |
tree | a47c957482b797e2bfda17b015bc8c7d832b9006 /src/mem/cache/write_queue.cc | |
parent | 6c92ee49f1125559ffc7c20cfe96306b9c4de017 (diff) | |
download | gem5-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.cc | 19 |
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); } |