Yeah, I didn't realize that default protocol had changed. I just pushed a changeset to revert it back to MI_example.
Sure, we can run the non-ruby tests on all ruby protocols. As long as it doesn't increase the testing time beyond a reasonable level, there is no harm in doing so. Brad -----Original Message----- From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On Behalf Of Steve Reinhardt Sent: Monday, February 01, 2010 8:55 AM To: M5 Developer List Subject: Re: [m5-dev] Cron <m5t...@zizzer>/z/m5/regression/do-regression--scratch all Yes, it would... that would be great. I think having the option to compile out the classic M5 memory hierarchy is still useful, but that's only a partial solution to the current problem. Steve On Mon, Feb 1, 2010 at 8:49 AM, nathan binkert <n...@binkert.org> wrote: > I'll see if I can put a little bit of effort into allowing multiple > protocols to be compiled into the same binary. That would really fix > the problem, right? > > Nate > > On Mon, Feb 1, 2010 at 8:46 AM, Steve Reinhardt <ste...@gmail.com> wrote: >> OK, I realize the idea I was originally thinking of didn't solve the >> problem of not wanting to rerun all the non-ruby tests on every >> different ruby protocol build. >> >> For those following at home (prob. everyone other than Brad and me), >> the issue is that the test infrastructure is designed to run every >> test that applies to a given binary, but with N different ruby >> protocol builds, you end up running all of the ruby-independent tests >> N times even though it should be sufficient to run them once. Brad's >> solution only runs the ruby-independent tests on the build that uses >> the "default" ruby protocol. However, that default protocol is >> hard-coded in the test script, and when the actual default protocol >> gets changed but the test script is not updated, then you end up not >> running any ruby-independent tests (which is what has been happening >> lately). >> >> Ideally I'd like to stay with the model of running every test on every >> binary it applies to; while the current solution optimizes some >> unnecessary tests out of the full regression, it also eliminates some >> potentially useful tests for people who might not be using the default >> ruby protocol. One option that I'm leaning toward is to add a scons >> flag to disable compiling in the "classic" M5 cache model. Then we >> can disable it in all but one of the ruby builds, and not run any >> tests that require the classic M5 memory hierarchy for those builds. >> That would still leave us running the purely functional tests (that >> really don't require a cache hierarchy at all) on all of the different >> ruby protocol builds, but I don't think any of those are very long, so >> that shouldn't be so bad to put up with. >> >> Steve >> >> On Sun, Jan 31, 2010 at 10:53 PM, Steve Reinhardt <ste...@gmail.com> wrote: >>> I'm not sure it's the stickiness... my interpretation is that Derek >>> changed the default in the src/mem/protocol/SConsopts file which made >>> it inconsistent with what you assumed it was in tests/SConscript. >>> Anyway, I think the fix I suggested that completely removes any >>> dependence on the default value in the test system is more robust and >>> what we should do in the long run. >>> >>> Steve >>> >>> On Sun, Jan 31, 2010 at 10:33 PM, Beckmann, Brad <brad.beckm...@amd.com> >>> wrote: >>>> 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 >>>> >>> >> _______________________________________________ >> 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 _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev