summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system
diff options
context:
space:
mode:
authorJoel Hestness <jthestness@gmail.com>2013-04-09 16:25:29 -0500
committerJoel Hestness <jthestness@gmail.com>2013-04-09 16:25:29 -0500
commit46d4b71aa244da24453d86184f3cf2ba8b5bdbac (patch)
tree7bb37436da31b46adde025231f4912458cdae00d /src/mem/ruby/system
parente98c3c227da0b7c4a3e11e64eb80386727b3fa1c (diff)
downloadgem5-46d4b71aa244da24453d86184f3cf2ba8b5bdbac.tar.xz
Ruby: Delete packet requests during warmup
When warming up caches in Ruby, the CacheRecorder sends fetch requests into Ruby Sequencers with packet types that require responses. Since responses are never generated for these CacheRecorder requests, the requests are not deleted in the packet destructor called from the Ruby hit callback. Free the request.
Diffstat (limited to 'src/mem/ruby/system')
-rw-r--r--src/mem/ruby/system/Sequencer.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc
index 5eacc976a..606dff0ab 100644
--- a/src/mem/ruby/system/Sequencer.cc
+++ b/src/mem/ruby/system/Sequencer.cc
@@ -560,6 +560,8 @@ Sequencer::hitCallback(SequencerRequest* srequest,
delete srequest;
if (g_system_ptr->m_warmup_enabled) {
+ assert(pkt->req);
+ delete pkt->req;
delete pkt;
g_system_ptr->m_cache_recorder->enqueueNextFetchRequest();
} else if (g_system_ptr->m_cooldown_enabled) {