Hi Steve, Oops. It was such a small change in configuration, I didn't think about rerunning the regression tester, but now thinking about it, yes it could impact the results. The cache indexing functions were not using the right bits before this change.
I can go ahead and update the stats tonight. However, let me know if it is more convenient for you to update them yourself. Brad > -----Original Message----- > From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On > Behalf Of Steve Reinhardt > Sent: Saturday, March 26, 2011 6:20 AM > To: M5 Developer List > Subject: Re: [m5-dev] changeset in m5: ruby: fixed cache index setting > > Hi Brad, > > Would you expect this to change the results for the ruby regressions > slightly? The regressions passed last night because the tests didn't > actually get rerun (since scons doesn't see the config file as a > dependency), but I'm seeing some failures in the tip on tests I'm > running and I suspect it's due to this change. > > Steve > > On Fri, Mar 25, 2011 at 10:15 AM, Brad Beckmann <brad.beckm...@amd.com> > wrote: > > changeset d8587c913ccf in /z/repo/m5 > > details: http://repo.m5sim.org/m5?cmd=changeset;node=d8587c913ccf > > description: > > ruby: fixed cache index setting > > > > diffstat: > > > > configs/ruby/MESI_CMP_directory.py | 17 +++++++++++------ > > configs/ruby/MI_example.py | 4 +++- > > configs/ruby/MOESI_CMP_directory.py | 17 +++++++++++------ > > configs/ruby/MOESI_CMP_token.py | 15 +++++++++------ > > configs/ruby/MOESI_hammer.py | 10 +++++++--- > > 5 files changed, 41 insertions(+), 22 deletions(-) > > > > diffs (207 lines): > > > > diff -r bbab80b639cb -r d8587c913ccf > configs/ruby/MESI_CMP_directory.py > > --- a/configs/ruby/MESI_CMP_directory.py Fri Mar 25 00:46:14 > 2011 -0400 > > +++ b/configs/ruby/MESI_CMP_directory.py Fri Mar 25 10:13:50 > 2011 -0700 > > @@ -68,15 +68,19 @@ > > # Must create the individual controllers before the network to > ensure the > > # controller constructors are called before the network > constructor > > # > > + l2_bits = int(math.log(options.num_l2caches, 2)) > > + block_size_bits = int(math.log(options.cacheline_size, 2)) > > > > for i in xrange(options.num_cpus): > > # > > # First create the Ruby objects associated with this cpu > > # > > l1i_cache = L1Cache(size = options.l1i_size, > > - assoc = options.l1i_assoc) > > + assoc = options.l1i_assoc, > > + start_index_bit = block_size_bits) > > l1d_cache = L1Cache(size = options.l1d_size, > > - assoc = options.l1d_assoc) > > + assoc = options.l1d_assoc, > > + start_index_bit = block_size_bits) > > > > cpu_seq = RubySequencer(version = i, > > icache = l1i_cache, > > @@ -91,9 +95,7 @@ > > sequencer = cpu_seq, > > L1IcacheMemory = l1i_cache, > > L1DcacheMemory = l1d_cache, > > - l2_select_num_bits = \ > > - > math.log(options.num_l2caches, > > - 2)) > > + l2_select_num_bits = l2_bits) > > > > exec("system.l1_cntrl%d = l1_cntrl" % i) > > > > @@ -103,12 +105,15 @@ > > cpu_sequencers.append(cpu_seq) > > l1_cntrl_nodes.append(l1_cntrl) > > > > + l2_index_start = block_size_bits + l2_bits > > + > > for i in xrange(options.num_l2caches): > > # > > # First create the Ruby objects associated with this cpu > > # > > l2_cache = L2Cache(size = options.l2_size, > > - assoc = options.l2_assoc) > > + assoc = options.l2_assoc, > > + start_index_bit = l2_index_start) > > > > l2_cntrl = L2Cache_Controller(version = i, > > L2cacheMemory = l2_cache) > > diff -r bbab80b639cb -r d8587c913ccf configs/ruby/MI_example.py > > --- a/configs/ruby/MI_example.py Fri Mar 25 00:46:14 2011 - > 0400 > > +++ b/configs/ruby/MI_example.py Fri Mar 25 10:13:50 2011 - > 0700 > > @@ -60,6 +60,7 @@ > > # Must create the individual controllers before the network to > ensure the > > # controller constructors are called before the network > constructor > > # > > + block_size_bits = int(math.log(options.cacheline_size, 2)) > > > > for i in xrange(options.num_cpus): > > # > > @@ -68,7 +69,8 @@ > > # config parameters. > > # > > cache = Cache(size = options.l1d_size, > > - assoc = options.l1d_assoc) > > + assoc = options.l1d_assoc, > > + start_index_bit = block_size_bits) > > > > # > > # Only one unified L1 cache exists. Can cache instructions > and data. > > diff -r bbab80b639cb -r d8587c913ccf > configs/ruby/MOESI_CMP_directory.py > > --- a/configs/ruby/MOESI_CMP_directory.py Fri Mar 25 00:46:14 > 2011 -0400 > > +++ b/configs/ruby/MOESI_CMP_directory.py Fri Mar 25 10:13:50 > 2011 -0700 > > @@ -68,15 +68,19 @@ > > # Must create the individual controllers before the network to > ensure the > > # controller constructors are called before the network > constructor > > # > > + l2_bits = int(math.log(options.num_l2caches, 2)) > > + block_size_bits = int(math.log(options.cacheline_size, 2)) > > > > for i in xrange(options.num_cpus): > > # > > # First create the Ruby objects associated with this cpu > > # > > l1i_cache = L1Cache(size = options.l1i_size, > > - assoc = options.l1i_assoc) > > + assoc = options.l1i_assoc, > > + start_index_bit = block_size_bits) > > l1d_cache = L1Cache(size = options.l1d_size, > > - assoc = options.l1d_assoc) > > + assoc = options.l1d_assoc, > > + start_index_bit = block_size_bits) > > > > cpu_seq = RubySequencer(version = i, > > icache = l1i_cache, > > @@ -91,9 +95,7 @@ > > sequencer = cpu_seq, > > L1IcacheMemory = l1i_cache, > > L1DcacheMemory = l1d_cache, > > - l2_select_num_bits = \ > > - math.log(options.num_l2caches, > > - 2)) > > + l2_select_num_bits = l2_bits) > > > > exec("system.l1_cntrl%d = l1_cntrl" % i) > > # > > @@ -102,12 +104,15 @@ > > cpu_sequencers.append(cpu_seq) > > l1_cntrl_nodes.append(l1_cntrl) > > > > + l2_index_start = block_size_bits + l2_bits > > + > > for i in xrange(options.num_l2caches): > > # > > # First create the Ruby objects associated with this cpu > > # > > l2_cache = L2Cache(size = options.l2_size, > > - assoc = options.l2_assoc) > > + assoc = options.l2_assoc, > > + start_index_bit = l2_index_start) > > > > l2_cntrl = L2Cache_Controller(version = i, > > L2cacheMemory = l2_cache) > > diff -r bbab80b639cb -r d8587c913ccf configs/ruby/MOESI_CMP_token.py > > --- a/configs/ruby/MOESI_CMP_token.py Fri Mar 25 00:46:14 2011 - > 0400 > > +++ b/configs/ruby/MOESI_CMP_token.py Fri Mar 25 10:13:50 2011 - > 0700 > > @@ -82,15 +82,18 @@ > > # controller constructors are called before the network > constructor > > # > > l2_bits = int(math.log(options.num_l2caches, 2)) > > + block_size_bits = int(math.log(options.cacheline_size, 2)) > > > > for i in xrange(options.num_cpus): > > # > > # First create the Ruby objects associated with this cpu > > # > > l1i_cache = L1Cache(size = options.l1i_size, > > - assoc = options.l1i_assoc) > > + assoc = options.l1i_assoc, > > + start_index_bit = block_size_bits) > > l1d_cache = L1Cache(size = options.l1d_size, > > - assoc = options.l1d_assoc) > > + assoc = options.l1d_assoc, > > + start_index_bit = block_size_bits) > > > > cpu_seq = RubySequencer(version = i, > > icache = l1i_cache, > > @@ -123,13 +126,15 @@ > > cpu_sequencers.append(cpu_seq) > > l1_cntrl_nodes.append(l1_cntrl) > > > > + l2_index_start = block_size_bits + l2_bits > > + > > for i in xrange(options.num_l2caches): > > # > > # First create the Ruby objects associated with this cpu > > # > > l2_cache = L2Cache(size = options.l2_size, > > assoc = options.l2_assoc, > > - start_index_bit = l2_bits) > > + start_index_bit = l2_index_start) > > > > l2_cntrl = L2Cache_Controller(version = i, > > L2cacheMemory = l2_cache, > > @@ -158,9 +163,7 @@ > > size = \ > > > dir_size), > > memBuffer = mem_cntrl, > > - l2_select_num_bits = \ > > - > math.log(options.num_l2caches, > > - 2)) > > + l2_select_num_bits = > l2_bits) > > > > exec("system.dir_cntrl%d = dir_cntrl" % i) > > dir_cntrl_nodes.append(dir_cntrl) > > diff -r bbab80b639cb -r d8587c913ccf configs/ruby/MOESI_hammer.py > > --- a/configs/ruby/MOESI_hammer.py Fri Mar 25 00:46:14 2011 - > 0400 > > +++ b/configs/ruby/MOESI_hammer.py Fri Mar 25 10:13:50 2011 - > 0700 > > @@ -78,17 +78,21 @@ > > # Must create the individual controllers before the network to > ensure the > > # controller constructors are called before the network > constructor > > # > > + block_size_bits = int(math.log(options.cacheline_size, 2)) > > > > for i in xrange(options.num_cpus): > > # > > # First create the Ruby objects associated with this cpu > > # > > l1i_cache = L1Cache(size = options.l1i_size, > > - assoc = options.l1i_assoc) > > + assoc = options.l1i_assoc, > > + start_index_bit = block_size_bits) > > l1d_cache = L1Cache(size = options.l1d_size, > > - assoc = options.l1d_assoc) > > + assoc = options.l1d_assoc, > > + start_index_bit = block_size_bits) > > l2_cache = L2Cache(size = options.l2_size, > > - assoc = options.l2_assoc) > > + assoc = options.l2_assoc, > > + start_index_bit = block_size_bits) > > > > cpu_seq = RubySequencer(version = i, > > icache = l1i_cache, > > _______________________________________________ > > m5-dev mailing list > > m5-dev@m5sim.org > > http://m5sim.org/mailman/listinfo/m5-dev > > > _______________________________________________ > m5-dev mailing list > m5-dev@m5sim.org > http://m5sim.org/mailman/listinfo/m5-dev _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev