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 /configs/ruby | |
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 'configs/ruby')
-rw-r--r-- | configs/ruby/MOESI_hammer.py | 9 | ||||
-rw-r--r-- | configs/ruby/Ruby.py | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/configs/ruby/MOESI_hammer.py b/configs/ruby/MOESI_hammer.py index 00908ae8b..3cd33f981 100644 --- a/configs/ruby/MOESI_hammer.py +++ b/configs/ruby/MOESI_hammer.py @@ -105,6 +105,9 @@ def create_system(options, system, piobus, dma_devices): no_mig_atomic = not \ options.allow_atomic_migration) + if options.recycle_latency: + l1_cntrl.recycle_latency = options.recycle_latency + exec("system.l1_cntrl%d = l1_cntrl" % i) # # Add controllers and sequencers to the appropriate lists @@ -164,6 +167,9 @@ def create_system(options, system, piobus, dma_devices): probe_filter_enabled = \ options.pf_on) + if options.recycle_latency: + dir_cntrl.recycle_latency = options.recycle_latency + exec("system.dir_cntrl%d = dir_cntrl" % i) dir_cntrl_nodes.append(dir_cntrl) @@ -186,6 +192,9 @@ def create_system(options, system, piobus, dma_devices): dma_cntrl.dma_sequencer.port = dma_device.dma dma_cntrl_nodes.append(dma_cntrl) + if options.recycle_latency: + dma_cntrl.recycle_latency = options.recycle_latency + all_cntrls = l1_cntrl_nodes + dir_cntrl_nodes + dma_cntrl_nodes return (cpu_sequencers, dir_cntrl_nodes, all_cntrls) diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py index 71add4b61..638d8ba93 100644 --- a/configs/ruby/Ruby.py +++ b/configs/ruby/Ruby.py @@ -54,6 +54,9 @@ def define_options(parser): parser.add_option("--ruby-debug", action="store_true", default=False) parser.add_option("--ruby-debug-cycle", type="int", default=1) + parser.add_option("--recycle-latency", type="int", default=10, + help="Recycle latency for ruby controller input buffers") + protocol = buildEnv['PROTOCOL'] exec "import %s" % protocol eval("%s.define_options(parser)" % protocol) |