diff options
author | Brad Beckmann <Brad.Beckmann@amd.com> | 2010-08-20 11:46:14 -0700 |
---|---|---|
committer | Brad Beckmann <Brad.Beckmann@amd.com> | 2010-08-20 11:46:14 -0700 |
commit | af6b97e3ee2d73fcb2d4bcdbdffc9a6534dfdac8 (patch) | |
tree | 62657e18174edde5d3cf8bb68908a17034cdb59d /src/mem/slicc/symbols/StateMachine.py | |
parent | f57053473ad369d5baf4a83d17913e5af393a8a8 (diff) | |
download | gem5-af6b97e3ee2d73fcb2d4bcdbdffc9a6534dfdac8.tar.xz |
ruby: Recycle latency fix for hammer
Patch allows each individual message buffer to have different recycle latencies
and allows the overall recycle latency to be specified at the cmd line. The
patch also adds profiling info to make sure no one processor's requests are
recycled too much.
Diffstat (limited to 'src/mem/slicc/symbols/StateMachine.py')
-rw-r--r-- | src/mem/slicc/symbols/StateMachine.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py index b6b8bc5bc..d5a824905 100644 --- a/src/mem/slicc/symbols/StateMachine.py +++ b/src/mem/slicc/symbols/StateMachine.py @@ -494,6 +494,7 @@ $c_ident::init() if vtype.isBuffer and \ "rank" in var and "trigger_queue" not in var: code('$vid->setPriority(${{var["rank"]}});') + else: # Network port object network = var["network"] @@ -537,6 +538,13 @@ $vid->setDescription("[Version " + to_string(m_version) + ", ${ident}, name=${{v ''') + if vtype.isBuffer: + if "recycle_latency" in var: + code('$vid->setRecycleLatency(${{var["recycle_latency"]}});') + else: + code('$vid->setRecycleLatency(m_recycle_latency);') + + # Set the queue consumers code.insert_newline() for port in self.in_ports: @@ -562,10 +570,6 @@ $vid->setDescription("[Version " + to_string(m_version) + ", ${ident}, name=${{v event = "%s_Event_%s" % (self.ident, trans.event.ident) code('m_profiler.possibleTransition($state, $event);') - # added by SS to initialize recycle_latency of message buffers - for buf in self.message_buffer_names: - code("$buf->setRecycleLatency(m_recycle_latency);") - code.dedent() code('}') |