Yep, the problem is the PROTOCOL variable is sticky and therefore isn't being 
set to the default.

I just pushed a fix to add the default PROTOCOL variable to all build_opt 
files.  That should fix the regression tester, but it would be nice to always 
set the PROTOCOL variable to the default unless explicitly specified at the 
command line.

Brad


-----Original Message-----
From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On Behalf Of 
Steve Reinhardt
Sent: Sunday, January 31, 2010 4:40 PM
To: M5 Developer List
Subject: Re: [m5-dev] Cron <m5t...@zizzer> 
/z/m5/regression/do-regression--scratch all

OK, I believe it's a problem Brad was already worried about... see this:

diff -r a162a2b0b1f8 -r 5bd33f7c26ea tests/SConscript
--- a/tests/SConscript  Fri Jan 29 20:29:34 2010 -0800
+++ b/tests/SConscript  Fri Jan 29 20:29:40 2010 -0800
@@ -264,11 +264,23 @@
 else:
     configs += ['simple-atomic', 'simple-timing', 'o3-timing', 'memtest',
                 'simple-atomic-mp', 'simple-timing-mp', 'o3-timing-mp',
-                'inorder-timing']
+                'inorder-timing', 'rubytest']

 if env['RUBY']:
-    # Hack for Ruby
-    configs += [c + '-ruby' for c in configs]
+    # With Ruby, A protocol must be specified in the environment
+    assert(env['PROTOCOL'])
+
+    #
+    # Is there a way to determine what is Protocol EnumVariable
+    # default and eliminate the need to hard code the default protocol below?
+    #
+    # If the binary includes the default ruby protocol, run both ruby and
+    # non-ruby versions of the tests.  Otherwise just run the ruby versions.
+    #
+    if env['PROTOCOL'] == 'MI_example':
+        configs += [c + "-ruby" for c in configs]
+    else:
+        configs = [c + "-ruby-" + env['PROTOCOL'] for c in configs]

 cwd = os.getcwd()
 os.chdir(str(Dir('.').srcdir))

and then compare with this change, which is from Derek's merge changeset:

diff -r 289ac904233d -r 3d308cbd1657 src/mem/protocol/SConsopts
--- a/src/mem/protocol/SConsopts        Wed Nov 18 18:00:41 2009 -0800
+++ b/src/mem/protocol/SConsopts        Tue Jan 19 15:48:12 2010 -0600
@@ -50,7 +50,7 @@
     'MOESI_hammer',
     ]

-opt = EnumVariable('PROTOCOL', 'Coherence Protocol for Ruby', 'MI_example',
+opt = EnumVariable('PROTOCOL', 'Coherence Protocol for Ruby',
'MOESI_CMP_directory',
                    all_protocols)


... so that mismatch is causing all the builds that use the default
Ruby protocol to not find any applicable configurations since
tests/SConscript is looking for a different default protocol.

I think the best way to fix this is to forget trying to have the test
configs track the 'default' Ruby protocol, but instead to always have
the protocol explicit in the config name.  This will require moving
the existing *-ruby reference outputs, but it's more stable in the
long run.  Brad and I can probably discuss this tomorrow and make it
happen.

Steve

2010/1/31 Steve Reinhardt <ste...@gmail.com>:
> I'm looking at it now... I'm not sure exactly what the error is, but it looks 
> like it's running *only* the ruby tests now, and acting like the non-ruby 
> tests don't exist.
>
> Steve
>
> On Sun, Jan 31, 2010 at 11:24 AM, Beckmann, Brad <brad.beckm...@amd.com> 
> wrote:
>> I agree, I don't think it is working correctly.  I don't have access to
>> the Michigan server and I can't reproduce the error.  Could someone send
>> out the do-regression script?
>>
>> Thanks,
>>
>> Brad
_______________________________________________
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

Reply via email to