[m5-dev] Cron m5t...@zizzer /z/m5/regression/do-regression quick

2011-01-04 Thread Cron Daemon
* build/ALPHA_SE/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-timing-mp 
passed.
* build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-atomic-mp 
passed.
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/01.hello-2T-smt/alpha/linux/o3-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-atomic passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/inorder-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-atomic 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby 
passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer
 passed.
* build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual
 passed.
* 
build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic 
passed.
* 
build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing 
passed.
* 
build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual
 passed.
* 
build/ALPHA_FS/tests/fast/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic
 passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/o3-timing passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-timing-ruby 
passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-atomic passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-timing passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/inorder-timing passed.
* build/POWER_SE/tests/fast/quick/00.hello/power/linux/simple-atomic passed.
* build/POWER_SE/tests/fast/quick/00.hello/power/linux/o3-timing passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-atomic passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-timing 
passed.
* 
build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp
 passed.
* 
build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-timing-mp
 passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/o3-timing passed.
* 

Re: [m5-dev] Review Request: Changing how CacheMemory interfaces with SLICC

2011-01-04 Thread Nilay Vaish


 On 2011-01-03 15:31:20, Brad Beckmann wrote:
  Hi Nilay,

First, I must say this is an impressive amount of work.  You definitely got a 
lot done over holiday break. :)

Overall, this set of patches is definitely close, but I want to see if we can 
take them a step forward.  Also I have a few suggestions that may make things 
easier.  Finally, I have a bunch of minor questions/suggestions on individual 
lines, but I’ll hold off on those until you can respond to my higher-level 
questions.

The main thing I would like to see improved is not having to differentiate 
between “entry” and “entry_ptr” in the .sm files.  Am I correct that the only 
functions in the .sm files that are passed an “entry_ptr” are “is_valid_ptr”, 
“getCacheEntry”, and “set_cache_entry”?  If so, it seems that all three 
functions are generated with unique python code, either in an AST file or 
StateMachine.py.  Therefore, could we just pass these functions “entry” and 
rely on the underneath python code to generate the correct references?  This 
would make things more readable, “is_valid_ptr()” becomes “is_valid”, and it 
doesn’t require the slicc programmer to understand which functions take an 
entry pointer versus the entry itself.  If we can’t make such a change, I worry 
about how much extra complexity this change pushes on the slicc programmer.

Also another suggestion to make things more readable, please replace the name 
L1IcacheMemory_entry with L1I_entry.  Do the same for L1D_entry and L2_entry.  
That will shorten many of your lines.

So am I correct that hammer’s simultaneous usage of valid L1 and L2 cache 
entries in certain transitions is the only reason that within all actions, the 
getCacheEntry calls take multiple cache entries?  If so, I think it would be 
fairly trivial to use a tbe entry as an intermediary between the L1 and L2 for 
those particular hammer transitions.  That way only one cache entry is valid at 
any particular time, and we can simply use the variable cache_entry in the 
actions.  That should clean things up a lot.

By the way, once you check in these patches, the MESI_CMP_directory protocol 
will be deprecated, correct?  If so, make sure you include a patch that removes 
it from the regression tester.

Brad

 The main thing I would like to see improved is not having to differentiate
 between “entry” and “entry_ptr” in the .sm files.  Am I correct
 that the only functions in the .sm files that are passed an
 “entry_ptr” are “is_valid_ptr”, “getCacheEntry”, and
 “set_cache_entry”?  If so, it seems that all three functions are
 generated with unique python code, either in an AST file or
 StateMachine.py.  Therefore, could we just pass these functions
 “entry” and rely on the underneath python code to generate the correct
 references?  This would make things more readable, “is_valid_ptr()”
 becomes “is_valid”, and it doesn’t require the slicc programmer to
 understand which functions take an entry pointer versus the entry itself. 
 If we can’t make such a change, I worry about how much extra complexity
 this change pushes on the slicc programmer.

There are functions that are passed cache entry and transaction buffer entry as 
arguments. Currently, I assume that these arguments are passed using pointers.

 
 Also another suggestion to make things more readable, please replace the
 name L1IcacheMemory_entry with L1I_entry.  Do the same for L1D_entry and
 L2_entry.  That will shorten many of your lines.

The names of the cache entry variables are currently tied with the names of the 
cache memory variables belonging to the machine. If the name of the cache 
memory variable is A, then the corresponding cache entry variable is named 
A_entry.

 So am I correct that hammer’s simultaneous usage of valid L1 and L2
 cache entries in certain transitions is the only reason that within all
 actions, the getCacheEntry calls take multiple cache entries?  If so, I
 think it would be fairly trivial to use a tbe entry as an intermediary
 between the L1 and L2 for those particular hammer transitions.  That way
 only one cache entry is valid at any particular time, and we can simply
 use the variable cache_entry in the actions.  That should clean things up
 a lot.

Oops! Should have thought of that before doing all those changes. But can we 
assume that we would always have only one valid cache entry pointer at any 
given time? If that's true, I would probably revert to previous version of the 
patch. This should also resolve the naming issue.

 By the way, once you check in these patches, the MESI_CMP_directory
 protocol will be deprecated, correct?  If so, make sure you include a
 patch that removes it from the regression tester.

I have a patch for the protocol, but I need to discuss it. Do you think it is 
possible that a protocol is not in a dead lock but random tester outputs so 
because the underlying memory system is taking too much time? The patch works 
for 1, 2, 

Re: [m5-dev] Review Request: Changing how CacheMemory interfaces with SLICC

2011-01-04 Thread Arkaprava Basu

Hi Nilay,

   On deadlock issue with MESI_CMP_directory :
   Yes,  this can happen as ruby_tester or Sequencer only reports 
*possible* deadlocks. With higher number of processors there is more 
contention (and thus latency) and it can mistakenly report deadlock. I 
generally look at the protocol trace to figure out whether there is 
actually any deadlock or not. You can also try doubling the Sequencer 
deadlock threshold and see if the problem goes away. If its a true 
deadlock, it will  break again.


On some related note,  as Brad has pointed out MESI_CMP_directory has 
its share of issues. Recently one of Prof. Sarita Adve's student 
e-mailed us (Multifacet) about 6 bugs he found while model checking the 
MESI_CMP_directory (including a major one). I took some time to look at 
them and it seems like MESI_CMP_directory is now fixed (hopefully).  The 
modified protocol is now passing 1M checks with 16 processors with 
multiple random seeds.  I can locally coordinate with you on this, if 
you want.


Thanks
Arka

On 01/04/2011 11:43 AM, Nilay Vaish wrote:



On 2011-01-03 15:31:20, Brad Beckmann wrote:

Hi Nilay,

First, I must say this is an impressive amount of work.  You definitely got a 
lot done over holiday break. :)

Overall, this set of patches is definitely close, but I want to see if we can 
take them a step forward.  Also I have a few suggestions that may make things 
easier.  Finally, I have a bunch of minor questions/suggestions on individual 
lines, but I’ll hold off on those until you can respond to my higher-level 
questions.

The main thing I would like to see improved is not having to differentiate 
between “entry” and “entry_ptr” in the .sm files.  Am I correct that the only 
functions in the .sm files that are passed an “entry_ptr” are “is_valid_ptr”, 
“getCacheEntry”, and “set_cache_entry”?  If so, it seems that all three 
functions are generated with unique python code, either in an AST file or 
StateMachine.py.  Therefore, could we just pass these functions “entry” and 
rely on the underneath python code to generate the correct references?  This 
would make things more readable, “is_valid_ptr()” becomes “is_valid”, and it 
doesn’t require the slicc programmer to understand which functions take an 
entry pointer versus the entry itself.  If we can’t make such a change, I worry 
about how much extra complexity this change pushes on the slicc programmer.

Also another suggestion to make things more readable, please replace the name 
L1IcacheMemory_entry with L1I_entry.  Do the same for L1D_entry and L2_entry.  
That will shorten many of your lines.

So am I correct that hammer’s simultaneous usage of valid L1 and L2 cache 
entries in certain transitions is the only reason that within all actions, the 
getCacheEntry calls take multiple cache entries?  If so, I think it would be 
fairly trivial to use a tbe entry as an intermediary between the L1 and L2 for 
those particular hammer transitions.  That way only one cache entry is valid at 
any particular time, and we can simply use the variable cache_entry in the 
actions.  That should clean things up a lot.

By the way, once you check in these patches, the MESI_CMP_directory protocol 
will be deprecated, correct?  If so, make sure you include a patch that removes 
it from the regression tester.

Brad


The main thing I would like to see improved is not having to differentiate
between “entry” and “entry_ptr” in the .sm files.  Am I correct
that the only functions in the .sm files that are passed an
“entry_ptr” are “is_valid_ptr”, “getCacheEntry”, and
“set_cache_entry”?  If so, it seems that all three functions are
generated with unique python code, either in an AST file or
StateMachine.py.  Therefore, could we just pass these functions
“entry” and rely on the underneath python code to generate the correct
references?  This would make things more readable, “is_valid_ptr()”
becomes “is_valid”, and it doesn’t require the slicc programmer to
understand which functions take an entry pointer versus the entry itself.
If we can’t make such a change, I worry about how much extra complexity
this change pushes on the slicc programmer.

There are functions that are passed cache entry and transaction buffer entry as 
arguments. Currently, I assume that these arguments are passed using pointers.


Also another suggestion to make things more readable, please replace the
name L1IcacheMemory_entry with L1I_entry.  Do the same for L1D_entry and
L2_entry.  That will shorten many of your lines.

The names of the cache entry variables are currently tied with the names of the 
cache memory variables belonging to the machine. If the name of the cache 
memory variable is A, then the corresponding cache entry variable is named 
A_entry.


So am I correct that hammer’s simultaneous usage of valid L1 and L2
cache entries in certain transitions is the only reason that within all
actions, the getCacheEntry calls take 

Re: [m5-dev] Review Request: Changing how CacheMemory interfaces with SLICC

2011-01-04 Thread Beckmann, Brad
Hi Nilay,

My responses are below:

 The main thing I would like to see improved is not having to differentiate
 between “entry” and “entry_ptr” in the .sm files.  Am I correct
 that the only functions in the .sm files that are passed an
 “entry_ptr” are “is_valid_ptr”, “getCacheEntry”, and
 “set_cache_entry”?  If so, it seems that all three functions are
 generated with unique python code, either in an AST file or
 StateMachine.py.  Therefore, could we just pass these functions
 “entry” and rely on the underneath python code to generate the correct
 references?  This would make things more readable, “is_valid_ptr()”
 becomes “is_valid”, and it doesn’t require the slicc programmer to
 understand which functions take an entry pointer versus the entry itself. 
 If we can’t make such a change, I worry about how much extra complexity
 this change pushes on the slicc programmer.

There are functions that are passed cache entry and transaction buffer entry as 
arguments. Currently, I assume that these arguments are passed using pointers.

[BB] So does that mean that the cache entry is always passed in as a pointer?  
If so, can one just use cache_entry for all function calls and remove any use 
of cache_entry_ptr in the .sm files?  That is essentially what I would like 
to see.  

 
 Also another suggestion to make things more readable, please replace the
 name L1IcacheMemory_entry with L1I_entry.  Do the same for L1D_entry and
 L2_entry.  That will shorten many of your lines.

The names of the cache entry variables are currently tied with the names of the 
cache memory variables belonging to the machine. If the name of the cache 
memory variable is A, then the corresponding cache entry variable is named 
A_entry.

[BB] Ah, I see.  Ok then let's just keep them the way they are for now.  We can 
deal with shorting the names later.

 So am I correct that hammer’s simultaneous usage of valid L1 and L2
 cache entries in certain transitions is the only reason that within all
 actions, the getCacheEntry calls take multiple cache entries?  If so, I
 think it would be fairly trivial to use a tbe entry as an intermediary
 between the L1 and L2 for those particular hammer transitions.  That way
 only one cache entry is valid at any particular time, and we can simply
 use the variable cache_entry in the actions.  That should clean things up
 a lot.

Oops! Should have thought of that before doing all those changes. But can we 
assume that we would always have only one valid cache entry pointer at any 
given time? If that's true, I would probably revert to previous version of the 
patch. This should also resolve the naming issue.

[BB] I wouldn't have expected you to realize that.  It is one of those things 
that isn't completely obvious without spending a lot of time developing 
protocols.  Yes, I think it is easiest for you to just revert to the previous 
version of the patch and just modify the hammer protocol to use a tbe entry as 
an intermediary.  We've always had an unofficial rule that a controller can 
only manage multiple caches if those caches are exclusive with respect to each 
other.  For the most part, that rule has been followed by all the protocols I'm 
familiar with.  I think your change just makes that an official policy.

 By the way, once you check in these patches, the MESI_CMP_directory
 protocol will be deprecated, correct?  If so, make sure you include a
 patch that removes it from the regression tester.

I have a patch for the protocol, but I need to discuss it. Do you think it is 
possible that a protocol is not in a dead lock but random tester outputs so 
because the underlying memory system is taking too much time? The patch works 
for 1, 2, and 4 processors for 10,000,000 loads. I have tested these processor 
configurations with 40 different seed values. But for 8 processors, random 
tester outputs some thing like this --

panic: Possible Deadlock detected. Aborting!
version: 6 request.paddr: 12779 m_writeRequestTable: 15 current time: 369500011 
issue_time: 368993771 difference: 506240
 @ cycle 369500011
[wakeup:build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc, line 
123]

[BB] Yes, the current version of MESI_CMP_directory is broken in many places.  
Arka just told me that he recently fixed many of those problems.  I suggest 
getting his fixes and working from there.

Brad
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Fixing MESI CMP directory protocol

2011-01-04 Thread Nilay Vaish

What threshold do you use?

On Tue, 4 Jan 2011, Arkaprava Basu wrote:


Hi Nilay,

  On deadlock issue with MESI_CMP_directory :
  Yes,  this can happen as ruby_tester or Sequencer only reports *possible* 
deadlocks. With higher number of processors there is more contention (and 
thus latency) and it can mistakenly report deadlock. I generally look at the 
protocol trace to figure out whether there is actually any deadlock or not. 
You can also try doubling the Sequencer deadlock threshold and see if the 
problem goes away. If its a true deadlock, it will  break again.


On some related note,  as Brad has pointed out MESI_CMP_directory has its 
share of issues. Recently one of Prof. Sarita Adve's student e-mailed us 
(Multifacet) about 6 bugs he found while model checking the 
MESI_CMP_directory (including a major one). I took some time to look at them 
and it seems like MESI_CMP_directory is now fixed (hopefully).  The modified 
protocol is now passing 1M checks with 16 processors with multiple random 
seeds.  I can locally coordinate with you on this, if you want.


Thanks
Arka


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread Steve Reinhardt
On Mon, Jan 3, 2011 at 10:41 PM, nathan binkert n...@binkert.org wrote:

  So far I've found two oddities with a straightforward implementation of
 this
  approach:
 
  (1) It breaks down when the target is a prefix of the source:
 
   [   STRIP] ALPHA_SE/m5.fast.unstripped -
 
  instead of
 
   [   STRIP] ALPHA_SE/m5.fast: .unstripped -
 
  (2) It gives the wrong impression when targets are in a parent directory
  relative to the source:
 
   [ISA DESC] ALPHA_SE/arch/alpha/isa/main.isa - decoder.cc, decoder.hh,
  max_inst_regs.hh, atomic_simple_cpu_exec.cc, inorder_cpu_exec.cc,
  o3_cpu_exec.cc, timing_simple_cpu_exec.cc
 
  instead of
 
   [ISA DESC] ALPHA_SE/arch/alpha: isa/main.isa - decoder.cc, decoder.hh,
  max_inst_regs.hh, atomic_simple_cpu_exec.cc, inorder_cpu_exec.cc,
  o3_cpu_exec.cc, timing_simple_cpu_exec.cc
 
  I don't see these as deal-breakers, and I'm fine with leaving them as
 they
  are unless someone has a reasonable idea about how to address them, but I
  thought I'd point out that the ambiguities aren't purely theoretical.

 hmmm  I guess I still like the ability to cut and paste, but the
 ambiguity is annoying (and there are bound to be others.  I'll let you
 decide.  For #2, you could do ../decoder.cc, for #1, if you want, you
 could detect that the RHS is empty and do the whole basename.  These
 ideas might be overkill.  (Don't you love how a simple idea always
 gets more complicated?)


Yea, given the amount of time I've spent on this already I'm not inclined to
add a lot of sophisticated handling for a few exceptional cases.  #2 in
particular doesn't seem that bad to me; it is ambiguous, but in a sort of
reasonable way, and adding a bunch of path-handling code seems like
overkill.  For #1, the output is less intuitive with the blank RHS, and it's
pretty easy to check that the target is the same length as the common prefix
to know that there's a problem.  The question is what to do about it... one
simple possibility is just to reverse the arrow:

 [   STRIP] ALPHA_SE/m5.fast - .unstripped

Or I could trim back to the path separator:

 [   STRIP] ALPHA_SE/m5.fast.unstripped - m5.fast

Or trim to the nearest '.' or path sep:

 [   STRIP] ALPHA_SE/m5.fast.unstripped - .fast

Any preferences?

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread nathan binkert
  [   STRIP] ALPHA_SE/m5.fast - .unstripped
Would it be for just this one, or all? I think that we generally want
to cut and paste the source, not the target, so either way, this
doesn't seem like a great option.

 Or I could trim back to the path separator:
  [   STRIP] ALPHA_SE/m5.fast.unstripped - m5.fast

 Or trim to the nearest '.' or path sep:
  [   STRIP] ALPHA_SE/m5.fast.unstripped - .fast
Again, would this apply to all?  if so, I'd probably opt for the last
one since we don't need it in the majority of cases.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Fixing MESI CMP directory protocol

2011-01-04 Thread Arkaprava Basu

These are the following step I use:

1. First run with whatever default values of threshold are.
2. If deadlocked, take trace and try to find out is there evident reason 
for deadlock or not.

3. If no, double the default threshold value and run again.
4. If the same test passes with larger threshold, then it means the 
deadlock was actually not there. So life is good. If not, need to dig 
more into trace to see whats going on.


@Nilay:
By end of today, I will share with you the patch that seems like fixed  
that protocol.


Thanks
Arka

On 01/04/2011 12:51 PM, Nilay Vaish wrote:

What threshold do you use?

On Tue, 4 Jan 2011, Arkaprava Basu wrote:


Hi Nilay,

  On deadlock issue with MESI_CMP_directory :
  Yes,  this can happen as ruby_tester or Sequencer only reports 
*possible* deadlocks. With higher number of processors there is more 
contention (and thus latency) and it can mistakenly report deadlock. 
I generally look at the protocol trace to figure out whether there is 
actually any deadlock or not. You can also try doubling the Sequencer 
deadlock threshold and see if the problem goes away. If its a true 
deadlock, it will  break again.


On some related note,  as Brad has pointed out MESI_CMP_directory has 
its share of issues. Recently one of Prof. Sarita Adve's student 
e-mailed us (Multifacet) about 6 bugs he found while model checking 
the MESI_CMP_directory (including a major one). I took some time to 
look at them and it seems like MESI_CMP_directory is now fixed 
(hopefully).  The modified protocol is now passing 1M checks with 16 
processors with multiple random seeds.  I can locally coordinate with 
you on this, if you want.


Thanks
Arka


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread Steve Reinhardt
On Tue, Jan 4, 2011 at 11:24 AM, nathan binkert n...@binkert.org wrote:

   [   STRIP] ALPHA_SE/m5.fast - .unstripped
 Would it be for just this one, or all? I think that we generally want
 to cut and paste the source, not the target, so either way, this
 doesn't seem like a great option.


For all of these, I was thinking just for this case (or strictly, just for
the ones where the common prefix is equal to the entire target, which leaves
the RHS empty with the current code).

If you always reverse the arrow, you'll end up having the same problem in
the other direction (e.g., for the python embed step where foo.py -
foo.py.cc).


   Or I could trim back to the path separator:
   [   STRIP] ALPHA_SE/m5.fast.unstripped - m5.fast
 
  Or trim to the nearest '.' or path sep:
   [   STRIP] ALPHA_SE/m5.fast.unstripped - .fast
 Again, would this apply to all?  if so, I'd probably opt for the last
 one since we don't need it in the majority of cases.


 The current code works 99% of the time... always trimming back to the
nearest anything can cause issues; for example, with the swig lines:
bar/foo.i - _wrap.cc, .py
it looks nice as it is, but the common prefix is just bar/foo, so you don't
want to unconditionally go back to look for a . or path sep.

OTOH, I already back up a char when the common prefix ends in '.', otherwise
you'd get
foo.cc - o
instead of
foo.cc - .o
so maybe I can find a way to generalize that which will take care of the
.unstripped case.

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Changing how CacheMemory interfaces with SLICC

2011-01-04 Thread Nilay Vaish

Brad

Is there a reason why each action name follows the pattern combination of 
several letters_action performed by the action? The letters used are 
not abbreviations of the action performed. Can we use any combination?


Thanks
Nilay

On Tue, 4 Jan 2011, Beckmann, Brad wrote:


Hi Nilay,

My responses are below:


The main thing I would like to see improved is not having to differentiate
between “entry” and “entry_ptr” in the .sm files.  Am I correct
that the only functions in the .sm files that are passed an
“entry_ptr” are “is_valid_ptr”, “getCacheEntry”, and
“set_cache_entry”?  If so, it seems that all three functions are
generated with unique python code, either in an AST file or
StateMachine.py.  Therefore, could we just pass these functions
“entry” and rely on the underneath python code to generate the correct
references?  This would make things more readable, “is_valid_ptr()”
becomes “is_valid”, and it doesn’t require the slicc programmer to
understand which functions take an entry pointer versus the entry itself.
If we can’t make such a change, I worry about how much extra complexity
this change pushes on the slicc programmer.


There are functions that are passed cache entry and transaction buffer entry as 
arguments. Currently, I assume that these arguments are passed using pointers.

[BB] So does that mean that the cache entry is always passed in as a pointer?  If so, can one just 
use cache_entry for all function calls and remove any use of 
cache_entry_ptr in the .sm files?  That is essentially what I would like to see.



Also another suggestion to make things more readable, please replace the
name L1IcacheMemory_entry with L1I_entry.  Do the same for L1D_entry and
L2_entry.  That will shorten many of your lines.


The names of the cache entry variables are currently tied with the names of the 
cache memory variables belonging to the machine. If the name of the cache 
memory variable is A, then the corresponding cache entry variable is named 
A_entry.

[BB] Ah, I see.  Ok then let's just keep them the way they are for now.  We can 
deal with shorting the names later.


So am I correct that hammer’s simultaneous usage of valid L1 and L2
cache entries in certain transitions is the only reason that within all
actions, the getCacheEntry calls take multiple cache entries?  If so, I
think it would be fairly trivial to use a tbe entry as an intermediary
between the L1 and L2 for those particular hammer transitions.  That way
only one cache entry is valid at any particular time, and we can simply
use the variable cache_entry in the actions.  That should clean things up
a lot.


Oops! Should have thought of that before doing all those changes. But can we 
assume that we would always have only one valid cache entry pointer at any 
given time? If that's true, I would probably revert to previous version of the 
patch. This should also resolve the naming issue.

[BB] I wouldn't have expected you to realize that.  It is one of those things 
that isn't completely obvious without spending a lot of time developing 
protocols.  Yes, I think it is easiest for you to just revert to the previous 
version of the patch and just modify the hammer protocol to use a tbe entry as 
an intermediary.  We've always had an unofficial rule that a controller can 
only manage multiple caches if those caches are exclusive with respect to each 
other.  For the most part, that rule has been followed by all the protocols I'm 
familiar with.  I think your change just makes that an official policy.


By the way, once you check in these patches, the MESI_CMP_directory
protocol will be deprecated, correct?  If so, make sure you include a
patch that removes it from the regression tester.


I have a patch for the protocol, but I need to discuss it. Do you think it is 
possible that a protocol is not in a dead lock but random tester outputs so 
because the underlying memory system is taking too much time? The patch works 
for 1, 2, and 4 processors for 10,000,000 loads. I have tested these processor 
configurations with 40 different seed values. But for 8 processors, random 
tester outputs some thing like this --

panic: Possible Deadlock detected. Aborting!
version: 6 request.paddr: 12779 m_writeRequestTable: 15 current time: 369500011 
issue_time: 368993771 difference: 506240
@ cycle 369500011
[wakeup:build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc, line 
123]

[BB] Yes, the current version of MESI_CMP_directory is broken in many places.  
Arka just told me that he recently fixed many of those problems.  I suggest 
getting his fixes and working from there.

Brad
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Changing how CacheMemory interfaces with SLICC

2011-01-04 Thread Beckmann, Brad
Hi Nilay,

At one point in time, the combination of several letters at the beginning of 
the action name corresponded to the short hand name for the action.  The short 
hand name is the letter or letter combination that appears in the HTML tables.  
SLICC may have once enforced that the combination of letters matched the HTML 
short hand name, but I don't believe it does right now.  Therefore the letters 
are just a guide to match actions with their associated short hand name.  And 
yes, you can use any combination.

Brad


-Original Message-
From: Nilay Vaish [mailto:ni...@cs.wisc.edu] 
Sent: Tuesday, January 04, 2011 12:03 PM
To: Beckmann, Brad
Cc: Default
Subject: RE: Review Request: Changing how CacheMemory interfaces with SLICC

Brad

Is there a reason why each action name follows the pattern combination of 
several letters_action performed by the action? The letters used are not 
abbreviations of the action performed. Can we use any combination?

Thanks
Nilay

On Tue, 4 Jan 2011, Beckmann, Brad wrote:

 Hi Nilay,

 My responses are below:

 The main thing I would like to see improved is not having to 
 differentiate between “entry” and “entry_ptr” in the .sm 
 files.  Am I correct that the only functions in the .sm files that 
 are passed an “entry_ptr” are “is_valid_ptr”, 
 “getCacheEntry”, and “set_cache_entry”?  If so, it seems that 
 all three functions are generated with unique python code, either in 
 an AST file or StateMachine.py.  Therefore, could we just pass these 
 functions “entry” and rely on the underneath python code to 
 generate the correct references?  This would make things more 
 readable, “is_valid_ptr()” becomes “is_valid”, and it 
 doesn’t require the slicc programmer to understand which functions take an 
 entry pointer versus the entry itself.
 If we can’t make such a change, I worry about how much extra 
 complexity this change pushes on the slicc programmer.

 There are functions that are passed cache entry and transaction buffer entry 
 as arguments. Currently, I assume that these arguments are passed using 
 pointers.

 [BB] So does that mean that the cache entry is always passed in as a pointer? 
  If so, can one just use cache_entry for all function calls and remove any 
 use of cache_entry_ptr in the .sm files?  That is essentially what I would 
 like to see.


 Also another suggestion to make things more readable, please replace 
 the name L1IcacheMemory_entry with L1I_entry.  Do the same for 
 L1D_entry and L2_entry.  That will shorten many of your lines.

 The names of the cache entry variables are currently tied with the names of 
 the cache memory variables belonging to the machine. If the name of the cache 
 memory variable is A, then the corresponding cache entry variable is named 
 A_entry.

 [BB] Ah, I see.  Ok then let's just keep them the way they are for now.  We 
 can deal with shorting the names later.

 So am I correct that hammer’s simultaneous usage of valid L1 and L2 
 cache entries in certain transitions is the only reason that within 
 all actions, the getCacheEntry calls take multiple cache entries?  If 
 so, I think it would be fairly trivial to use a tbe entry as an 
 intermediary between the L1 and L2 for those particular hammer 
 transitions.  That way only one cache entry is valid at any 
 particular time, and we can simply use the variable cache_entry in 
 the actions.  That should clean things up a lot.

 Oops! Should have thought of that before doing all those changes. But can we 
 assume that we would always have only one valid cache entry pointer at any 
 given time? If that's true, I would probably revert to previous version of 
 the patch. This should also resolve the naming issue.

 [BB] I wouldn't have expected you to realize that.  It is one of those things 
 that isn't completely obvious without spending a lot of time developing 
 protocols.  Yes, I think it is easiest for you to just revert to the previous 
 version of the patch and just modify the hammer protocol to use a tbe entry 
 as an intermediary.  We've always had an unofficial rule that a controller 
 can only manage multiple caches if those caches are exclusive with respect to 
 each other.  For the most part, that rule has been followed by all the 
 protocols I'm familiar with.  I think your change just makes that an official 
 policy.

 By the way, once you check in these patches, the MESI_CMP_directory 
 protocol will be deprecated, correct?  If so, make sure you include a 
 patch that removes it from the regression tester.

 I have a patch for the protocol, but I need to discuss it. Do you 
 think it is possible that a protocol is not in a dead lock but random 
 tester outputs so because the underlying memory system is taking too 
 much time? The patch works for 1, 2, and 4 processors for 10,000,000 
 loads. I have tested these processor configurations with 40 different 
 seed values. But for 8 processors, random 

[m5-dev] changeset in m5: Params: Print the IP components in the right or...

2011-01-04 Thread Gabe Black
changeset c819526b7c2a in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=c819526b7c2a
description:
Params: Print the IP components in the right order.

diffstat:

 src/base/inet.cc |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (14 lines):

diff -r 7338bc628489 -r c819526b7c2a src/base/inet.cc
--- a/src/base/inet.cc  Mon Jan 03 14:35:47 2011 -0800
+++ b/src/base/inet.cc  Tue Jan 04 17:11:49 2011 -0500
@@ -138,8 +138,8 @@
 {
 uint32_t ip = ia.ip();
 ccprintf(stream, %x.%x.%x.%x,
-(uint8_t)(ip  0),  (uint8_t)(ip  8),
-(uint8_t)(ip  16), (uint8_t)(ip  24));
+(uint8_t)(ip  24), (uint8_t)(ip  16),
+(uint8_t)(ip  8),  (uint8_t)(ip  0));
 return stream;
 }
 
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: inorder: get rid of references to mainEventQueue.

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/368/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

inorder: get rid of references to mainEventQueue.
Events need to be scheduled on the queue assigned
to the SimObject, not on the global queue (which
should be going away).
Also cleaned up a number of redundant expressions
that made the code unnecessarily verbose.


Diffs
-

  src/cpu/inorder/cpu.hh 7338bc628489 
  src/cpu/inorder/cpu.cc 7338bc628489 
  src/cpu/inorder/resource.hh 7338bc628489 
  src/cpu/inorder/resource.cc 7338bc628489 
  src/cpu/inorder/resource_pool.cc 7338bc628489 

Diff: http://reviews.m5sim.org/r/368/diff


Testing
---


Thanks,

Steve

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: inorder: replace schedEvent() code with reschedule().

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/369/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

inorder: replace schedEvent() code with reschedule().
There were several copies of similar functions that looked
like they all replicated reschedule(), so I replaced them
with direct calls.  Keeping this separate from the previous
cset since there may be some subtle functional differences
if the code ever reschedules an event that is scheduled but
not squashed (though none were detected in the regressions).


Diffs
-

  src/cpu/inorder/cpu.hh 7338bc628489 
  src/cpu/inorder/cpu.cc 7338bc628489 
  src/cpu/inorder/resource.cc 7338bc628489 
  src/cpu/inorder/resource_pool.cc 7338bc628489 

Diff: http://reviews.m5sim.org/r/369/diff


Testing
---


Thanks,

Steve

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: pseudoinst: get rid of mainEventQueue references.

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/370/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

pseudoinst: get rid of mainEventQueue references.
Avoid direct references to mainEventQueue in pseudo-insts
by indirecting through associated CPU object.
Made exitSimLoop() more flexible to enable some of these.


Diffs
-

  src/sim/pseudo_inst.cc 7338bc628489 
  src/sim/sim_events.cc 7338bc628489 
  src/sim/sim_exit.hh 7338bc628489 

Diff: http://reviews.m5sim.org/r/370/diff


Testing
---


Thanks,

Steve

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: sim: delete unused CheckSwapEvent code.

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/371/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

sim: delete unused CheckSwapEvent code.
There's no way to even create one of these anymore.


Diffs
-

  src/sim/sim_events.hh 7338bc628489 
  src/sim/sim_events.cc 7338bc628489 

Diff: http://reviews.m5sim.org/r/371/diff


Testing
---


Thanks,

Steve

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: sim: clean up CountedDrainEvent slightly.

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/372/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

sim: clean up CountedDrainEvent slightly.
There's no reason for it to derive from SimLoopExitEvent.
This whole drain thing needs to be redone eventually,
but this is a stopgap to make later changes to
SimLoopExitEvent feasible.


Diffs
-

  src/sim/sim_events.hh 7338bc628489 
  src/sim/sim_events.cc 7338bc628489 

Diff: http://reviews.m5sim.org/r/372/diff


Testing
---


Thanks,

Steve

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: Hammer protocol: Change how data to copied from L1 to L2 cache and vice-versa

2011-01-04 Thread Nilay Vaish

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/334/
---

Review request for Default.


Summary
---

This patch changes the manner in which data is copied from L1 to L2 cache
in the implementation of the Hammer's cache coherence protocol. Earlier, 
data was copied directly from one cache entry to another. This has been
broken in to two parts. First, the data is copied from the source cache
entry to a transaction buffer entry. Then, data is copied from the
transaction buffer entry to the destination cache entry.

This has been done to maintain the invariant - at any given instant, a
multiple caches under a controller are exclusive with respect to each 
other.


Diffs
-

  src/mem/protocol/MOESI_hammer-cache.sm UNKNOWN 

Diff: http://reviews.m5sim.org/r/334/diff


Testing
---

The changes have been tested with ruby random tester using a single seed for 
100,000 loads and number of processors = 1, 2, 4 and 8.


Thanks,

Nilay

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: inorder: replace schedEvent() code with reschedule().

2011-01-04 Thread Nathan Binkert

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/369/#review599
---

Ship it!


Looks good.  I assume it works.

- Nathan


On 2011-01-04 14:41:12, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/369/
 ---
 
 (Updated 2011-01-04 14:41:12)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 inorder: replace schedEvent() code with reschedule().
 There were several copies of similar functions that looked
 like they all replicated reschedule(), so I replaced them
 with direct calls.  Keeping this separate from the previous
 cset since there may be some subtle functional differences
 if the code ever reschedules an event that is scheduled but
 not squashed (though none were detected in the regressions).
 
 
 Diffs
 -
 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/369/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: stats: rename StatEvent() function to schedStatEvent().

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/373/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

stats: rename StatEvent() function to schedStatEvent().
This follows the style rules and is more descriptive.


Diffs
-

  src/python/m5/stats.py 7338bc628489 
  src/python/swig/stats.i 7338bc628489 
  src/sim/pseudo_inst.cc 7338bc628489 
  src/sim/simulate.cc 7338bc628489 
  src/sim/stat_control.hh 7338bc628489 
  src/sim/stat_control.cc 7338bc628489 

Diff: http://reviews.m5sim.org/r/373/diff


Testing
---


Thanks,

Steve

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Review Request: Replace curTick global variable with accessor functions.

2011-01-04 Thread Steve Reinhardt

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/374/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

Replace curTick global variable with accessor functions.
This step makes it easy to replace the accessor functions
(which still access a global variable) with ones that access
per-thread curTick values.


Diffs
-

  src/arch/alpha/isa/decoder.isa 7338bc628489 
  src/arch/alpha/kernel_stats.cc 7338bc628489 
  src/arch/alpha/tru64/process.cc 7338bc628489 
  src/arch/arm/table_walker.cc 7338bc628489 
  src/arch/mips/isa.cc 7338bc628489 
  src/arch/mips/isa/formats/mt.isa 7338bc628489 
  src/arch/mips/locked_mem.hh 7338bc628489 
  src/arch/mips/mt.hh 7338bc628489 
  src/arch/sparc/ua2005.cc 7338bc628489 
  src/arch/x86/interrupts.cc 7338bc628489 
  src/base/cp_annotate.hh 7338bc628489 
  src/base/cp_annotate.cc 7338bc628489 
  src/base/fast_alloc.cc 7338bc628489 
  src/base/misc.cc 7338bc628489 
  src/base/remote_gdb.cc 7338bc628489 
  src/base/statistics.hh 7338bc628489 
  src/base/stats/mysql.cc 7338bc628489 
  src/base/stats/output.cc 7338bc628489 
  src/base/trace.hh 7338bc628489 
  src/cpu/base.hh 7338bc628489 
  src/cpu/base.cc 7338bc628489 
  src/cpu/checker/cpu.cc 7338bc628489 
  src/cpu/checker/cpu_impl.hh 7338bc628489 
  src/cpu/inorder/cpu.hh 7338bc628489 
  src/cpu/inorder/cpu.cc 7338bc628489 
  src/cpu/inorder/inorder_dyn_inst.cc 7338bc628489 
  src/cpu/inorder/pipeline_stage.cc 7338bc628489 
  src/cpu/inorder/reg_dep_map.cc 7338bc628489 
  src/cpu/inorder/resource.cc 7338bc628489 
  src/cpu/inorder/resource_pool.9stage.cc 7338bc628489 
  src/cpu/inorder/resource_pool.cc 7338bc628489 
  src/cpu/inorder/resources/branch_predictor.cc 7338bc628489 
  src/cpu/inorder/resources/cache_unit.cc 7338bc628489 
  src/cpu/inorder/resources/execution_unit.cc 7338bc628489 
  src/cpu/inorder/resources/fetch_seq_unit.cc 7338bc628489 
  src/cpu/inorder/resources/graduation_unit.cc 7338bc628489 
  src/cpu/inorder/resources/mult_div_unit.cc 7338bc628489 
  src/cpu/o3/commit_impl.hh 7338bc628489 
  src/cpu/o3/cpu.hh 7338bc628489 
  src/cpu/o3/cpu.cc 7338bc628489 
  src/cpu/o3/fetch_impl.hh 7338bc628489 
  src/cpu/o3/inst_queue_impl.hh 7338bc628489 
  src/cpu/o3/lsq_impl.hh 7338bc628489 
  src/cpu/o3/lsq_unit.hh 7338bc628489 
  src/cpu/o3/lsq_unit_impl.hh 7338bc628489 
  src/cpu/o3/thread_context_impl.hh 7338bc628489 
  src/cpu/ozone/back_end.hh 7338bc628489 
  src/cpu/ozone/cpu.hh 7338bc628489 
  src/cpu/ozone/cpu_impl.hh 7338bc628489 
  src/cpu/ozone/front_end_impl.hh 7338bc628489 
  src/cpu/ozone/inorder_back_end.hh 7338bc628489 
  src/cpu/ozone/inst_queue_impl.hh 7338bc628489 
  src/cpu/ozone/lsq_unit.hh 7338bc628489 
  src/cpu/ozone/lsq_unit_impl.hh 7338bc628489 
  src/cpu/ozone/lw_back_end_impl.hh 7338bc628489 
  src/cpu/ozone/lw_lsq.hh 7338bc628489 
  src/cpu/ozone/lw_lsq_impl.hh 7338bc628489 
  src/cpu/pc_event.cc 7338bc628489 
  src/cpu/simple/atomic.cc 7338bc628489 
  src/cpu/simple/base.cc 7338bc628489 
  src/cpu/simple/timing.cc 7338bc628489 
  src/cpu/simple_thread.cc 7338bc628489 
  src/cpu/static_inst.cc 7338bc628489 
  src/cpu/testers/directedtest/RubyDirectedTester.cc 7338bc628489 
  src/cpu/testers/memtest/memtest.cc 7338bc628489 
  src/cpu/testers/rubytest/Check.cc 7338bc628489 
  src/cpu/testers/rubytest/RubyTester.cc 7338bc628489 
  src/cpu/trace/trace_cpu.cc 7338bc628489 
  src/dev/alpha/backdoor.cc 7338bc628489 
  src/dev/arm/pl011.cc 7338bc628489 
  src/dev/arm/pl111.cc 7338bc628489 
  src/dev/arm/rv_ctrl.cc 7338bc628489 
  src/dev/arm/timer_sp804.cc 7338bc628489 
  src/dev/etherbus.cc 7338bc628489 
  src/dev/etherdump.cc 7338bc628489 
  src/dev/etherlink.cc 7338bc628489 
  src/dev/ethertap.cc 7338bc628489 
  src/dev/i8254xGBe.cc 7338bc628489 
  src/dev/ide_disk.cc 7338bc628489 
  src/dev/intel_8254_timer.cc 7338bc628489 
  src/dev/io_device.cc 7338bc628489 
  src/dev/mc146818.hh 7338bc628489 
  src/dev/mc146818.cc 7338bc628489 
  src/dev/ns_gige.cc 7338bc628489 
  src/dev/sinic.cc 7338bc628489 
  src/dev/uart8250.cc 7338bc628489 
  src/kern/kernel_stats.cc 7338bc628489 
  src/mem/bridge.cc 7338bc628489 
  src/mem/bus.cc 7338bc628489 
  src/mem/cache/base.hh 7338bc628489 
  src/mem/cache/base.cc 7338bc628489 
  src/mem/cache/blk.hh 7338bc628489 
  src/mem/cache/cache_impl.hh 7338bc628489 
  src/mem/cache/mshr.hh 7338bc628489 
  src/mem/cache/mshr.cc 7338bc628489 
  src/mem/cache/mshr_queue.hh 7338bc628489 
  src/mem/cache/tags/fa_lru.cc 7338bc628489 
  src/mem/cache/tags/iic.cc 7338bc628489 
  src/mem/cache/tags/lru.cc 7338bc628489 
  src/mem/dram.cc 7338bc628489 
  src/mem/mport.cc 7338bc628489 
  src/mem/packet.hh 7338bc628489 
  src/mem/request.hh 7338bc628489 
  src/mem/ruby/eventqueue/RubyEventQueue.hh 7338bc628489 
  src/mem/ruby/system/RubyPort.cc 7338bc628489 
  

Re: [m5-dev] Review Request: pseudoinst: get rid of mainEventQueue references.

2011-01-04 Thread Nathan Binkert

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/370/#review600
---

Ship it!


Looks good.

- Nathan


On 2011-01-04 14:41:43, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/370/
 ---
 
 (Updated 2011-01-04 14:41:43)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 pseudoinst: get rid of mainEventQueue references.
 Avoid direct references to mainEventQueue in pseudo-insts
 by indirecting through associated CPU object.
 Made exitSimLoop() more flexible to enable some of these.
 
 
 Diffs
 -
 
   src/sim/pseudo_inst.cc 7338bc628489 
   src/sim/sim_events.cc 7338bc628489 
   src/sim/sim_exit.hh 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/370/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: sim: delete unused CheckSwapEvent code.

2011-01-04 Thread Nathan Binkert

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/371/#review601
---

Ship it!


- Nathan


On 2011-01-04 14:41:53, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/371/
 ---
 
 (Updated 2011-01-04 14:41:53)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 sim: delete unused CheckSwapEvent code.
 There's no way to even create one of these anymore.
 
 
 Diffs
 -
 
   src/sim/sim_events.hh 7338bc628489 
   src/sim/sim_events.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/371/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] recent batch of patches to review

2011-01-04 Thread Steve Reinhardt
FYI, I've been working recently on implementing multiple event
queues/threads, and while the actual multi-queue code isn't ready yet, these
patches represent a bunch of preliminary cleanup/setup changes that make it
possible.  I'd like to get these committed so I don't have to keep rebasing
them... especially the curTick accessor one.

Thanks,

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: inorder: get rid of references to mainEventQueue.

2011-01-04 Thread Nathan Binkert

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/368/#review604
---

Ship it!


- Nathan


On 2011-01-04 14:40:57, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/368/
 ---
 
 (Updated 2011-01-04 14:40:57)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 inorder: get rid of references to mainEventQueue.
 Events need to be scheduled on the queue assigned
 to the SimObject, not on the global queue (which
 should be going away).
 Also cleaned up a number of redundant expressions
 that made the code unnecessarily verbose.
 
 
 Diffs
 -
 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/resource.hh 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/368/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] recent batch of patches to review

2011-01-04 Thread nathan binkert
 FYI, I've been working recently on implementing multiple event
 queues/threads, and while the actual multi-queue code isn't ready yet, these
 patches represent a bunch of preliminary cleanup/setup changes that make it
 possible.  I'd like to get these committed so I don't have to keep rebasing
 them... especially the curTick accessor one.

A general request for everyone.  If you have a review where most of
the code is done by a script and a little bit matters, can you
separate the automated part into a separate diff so it's easier to
find the important stuff?  e.g. for the sort includes diff, I had
three.  The util, the util being run, and the fixup after the util was
run.  (This makes rebasing easier too because you can just redo the
big diff).  They can be folded for the final (though probably better
if not.)

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Replace curTick global variable with accessor functions.

2011-01-04 Thread Nathan Binkert

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/374/#review605
---

Ship it!


Maybe it's too much for this diff, but I think you can get rid of the global 
variable and put _curTick in the event queue class.  Then you can put a 
curTick() accessor into the EventQueue and EventManager classes, and create a 
global curTick (though maybe with a different name like mainCurTick() so we can 
tell what is what) that accesses mainEventQueue.curTick().  Maybe not needed 
for this diff, but certainly something that would seem to be a good step.  
Thanks for doing this.  I've been wanting to do exactly this for a while.

- Nathan


On 2011-01-04 14:43:38, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/374/
 ---
 
 (Updated 2011-01-04 14:43:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 Replace curTick global variable with accessor functions.
 This step makes it easy to replace the accessor functions
 (which still access a global variable) with ones that access
 per-thread curTick values.
 
 
 Diffs
 -
 
   src/arch/alpha/isa/decoder.isa 7338bc628489 
   src/arch/alpha/kernel_stats.cc 7338bc628489 
   src/arch/alpha/tru64/process.cc 7338bc628489 
   src/arch/arm/table_walker.cc 7338bc628489 
   src/arch/mips/isa.cc 7338bc628489 
   src/arch/mips/isa/formats/mt.isa 7338bc628489 
   src/arch/mips/locked_mem.hh 7338bc628489 
   src/arch/mips/mt.hh 7338bc628489 
   src/arch/sparc/ua2005.cc 7338bc628489 
   src/arch/x86/interrupts.cc 7338bc628489 
   src/base/cp_annotate.hh 7338bc628489 
   src/base/cp_annotate.cc 7338bc628489 
   src/base/fast_alloc.cc 7338bc628489 
   src/base/misc.cc 7338bc628489 
   src/base/remote_gdb.cc 7338bc628489 
   src/base/statistics.hh 7338bc628489 
   src/base/stats/mysql.cc 7338bc628489 
   src/base/stats/output.cc 7338bc628489 
   src/base/trace.hh 7338bc628489 
   src/cpu/base.hh 7338bc628489 
   src/cpu/base.cc 7338bc628489 
   src/cpu/checker/cpu.cc 7338bc628489 
   src/cpu/checker/cpu_impl.hh 7338bc628489 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/inorder_dyn_inst.cc 7338bc628489 
   src/cpu/inorder/pipeline_stage.cc 7338bc628489 
   src/cpu/inorder/reg_dep_map.cc 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.9stage.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
   src/cpu/inorder/resources/branch_predictor.cc 7338bc628489 
   src/cpu/inorder/resources/cache_unit.cc 7338bc628489 
   src/cpu/inorder/resources/execution_unit.cc 7338bc628489 
   src/cpu/inorder/resources/fetch_seq_unit.cc 7338bc628489 
   src/cpu/inorder/resources/graduation_unit.cc 7338bc628489 
   src/cpu/inorder/resources/mult_div_unit.cc 7338bc628489 
   src/cpu/o3/commit_impl.hh 7338bc628489 
   src/cpu/o3/cpu.hh 7338bc628489 
   src/cpu/o3/cpu.cc 7338bc628489 
   src/cpu/o3/fetch_impl.hh 7338bc628489 
   src/cpu/o3/inst_queue_impl.hh 7338bc628489 
   src/cpu/o3/lsq_impl.hh 7338bc628489 
   src/cpu/o3/lsq_unit.hh 7338bc628489 
   src/cpu/o3/lsq_unit_impl.hh 7338bc628489 
   src/cpu/o3/thread_context_impl.hh 7338bc628489 
   src/cpu/ozone/back_end.hh 7338bc628489 
   src/cpu/ozone/cpu.hh 7338bc628489 
   src/cpu/ozone/cpu_impl.hh 7338bc628489 
   src/cpu/ozone/front_end_impl.hh 7338bc628489 
   src/cpu/ozone/inorder_back_end.hh 7338bc628489 
   src/cpu/ozone/inst_queue_impl.hh 7338bc628489 
   src/cpu/ozone/lsq_unit.hh 7338bc628489 
   src/cpu/ozone/lsq_unit_impl.hh 7338bc628489 
   src/cpu/ozone/lw_back_end_impl.hh 7338bc628489 
   src/cpu/ozone/lw_lsq.hh 7338bc628489 
   src/cpu/ozone/lw_lsq_impl.hh 7338bc628489 
   src/cpu/pc_event.cc 7338bc628489 
   src/cpu/simple/atomic.cc 7338bc628489 
   src/cpu/simple/base.cc 7338bc628489 
   src/cpu/simple/timing.cc 7338bc628489 
   src/cpu/simple_thread.cc 7338bc628489 
   src/cpu/static_inst.cc 7338bc628489 
   src/cpu/testers/directedtest/RubyDirectedTester.cc 7338bc628489 
   src/cpu/testers/memtest/memtest.cc 7338bc628489 
   src/cpu/testers/rubytest/Check.cc 7338bc628489 
   src/cpu/testers/rubytest/RubyTester.cc 7338bc628489 
   src/cpu/trace/trace_cpu.cc 7338bc628489 
   src/dev/alpha/backdoor.cc 7338bc628489 
   src/dev/arm/pl011.cc 7338bc628489 
   src/dev/arm/pl111.cc 7338bc628489 
   src/dev/arm/rv_ctrl.cc 7338bc628489 
   src/dev/arm/timer_sp804.cc 7338bc628489 
   src/dev/etherbus.cc 7338bc628489 
   src/dev/etherdump.cc 7338bc628489 
   src/dev/etherlink.cc 7338bc628489 
   src/dev/ethertap.cc 7338bc628489 
   src/dev/i8254xGBe.cc 7338bc628489 
   src/dev/ide_disk.cc 7338bc628489 
   src/dev/intel_8254_timer.cc 7338bc628489 
 

Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread Nathan Binkert

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/367/
---

(Updated 2011-01-04 15:02:38.269001)


Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

ruby: get rid of ruby's Debug.hh

Get rid of the Debug class
Get rid of ASSERT and use assert
Use DPRINTF for ProtocolTrace


Diffs (updated)
-

  configs/ruby/Ruby.py 7338bc628489 
  src/mem/SConscript 7338bc628489 
  src/mem/ruby/buffers/MessageBuffer.hh 7338bc628489 
  src/mem/ruby/buffers/MessageBuffer.cc 7338bc628489 
  src/mem/ruby/common/Debug.hh 7338bc628489 
  src/mem/ruby/common/Debug.cc 7338bc628489 
  src/mem/ruby/common/Debug.py 7338bc628489 
  src/mem/ruby/common/Global.hh 7338bc628489 
  src/mem/ruby/common/Global.cc 7338bc628489 
  src/mem/ruby/common/SConscript 7338bc628489 
  src/mem/ruby/common/Set.cc 7338bc628489 
  src/mem/ruby/eventqueue/RubyEventQueue.cc 7338bc628489 
  src/mem/ruby/filters/BulkBloomFilter.cc 7338bc628489 
  src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 7338bc628489 
  src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 7338bc628489 
  src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 7338bc628489 
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 7338bc628489 
  src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
7338bc628489 
  src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 7338bc628489 
  src/mem/ruby/network/simple/SimpleNetwork.cc 7338bc628489 
  src/mem/ruby/network/simple/Throttle.cc 7338bc628489 
  src/mem/ruby/network/simple/Topology.cc 7338bc628489 
  src/mem/ruby/profiler/Profiler.hh 7338bc628489 
  src/mem/ruby/profiler/Profiler.cc 7338bc628489 
  src/mem/ruby/slicc_interface/RubySlicc_Util.hh 7338bc628489 
  src/mem/ruby/storebuffer/storebuffer.cc 7338bc628489 
  src/mem/ruby/system/RubySystem.py 7338bc628489 
  src/mem/ruby/system/Sequencer.cc 7338bc628489 
  src/mem/ruby/system/System.cc 7338bc628489 
  src/mem/ruby/tester/DeterministicDriver.cc 7338bc628489 
  src/mem/ruby/tester/RaceyDriver.cc 7338bc628489 
  src/mem/ruby/tester/RaceyPseudoThread.cc 7338bc628489 
  src/mem/ruby/tester/test_framework.cc 7338bc628489 
  src/mem/slicc/symbols/StateMachine.py 7338bc628489 
  src/mem/slicc/symbols/Type.py 7338bc628489 

Diff: http://reviews.m5sim.org/r/367/diff


Testing
---

This compiles and passes all of the quick regressions, but it would be nice for 
a Ruby developer to take a look and see if I got rid of any useful 
functionality.


Thanks,

Nathan

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] recent batch of patches to review

2011-01-04 Thread Steve Reinhardt
On Tue, Jan 4, 2011 at 2:59 PM, nathan binkert n...@binkert.org wrote:

  FYI, I've been working recently on implementing multiple event
  queues/threads, and while the actual multi-queue code isn't ready yet,
 these
  patches represent a bunch of preliminary cleanup/setup changes that make
 it
  possible.  I'd like to get these committed so I don't have to keep
 rebasing
  them... especially the curTick accessor one.

 A general request for everyone.  If you have a review where most of
 the code is done by a script and a little bit matters, can you
 separate the automated part into a separate diff so it's easier to
 find the important stuff?  e.g. for the sort includes diff, I had
 three.  The util, the util being run, and the fixup after the util was
 run.  (This makes rebasing easier too because you can just redo the
 big diff).  They can be folded for the final (though probably better
 if not.)


Good point, sorry about that... I'll try to remember for next time.

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Hammer protocol: Change how data to copied from L1 to L2 cache and vice-versa

2011-01-04 Thread Brad Beckmann

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/334/#review606
---


Hi Nilay,

These changes look good, but don't you also have to use a tbe entry as an 
intermediary for the L1_to_L2 transitions?

Brad

- Brad


On 2011-01-04 14:42:14, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/334/
 ---
 
 (Updated 2011-01-04 14:42:14)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This patch changes the manner in which data is copied from L1 to L2 cache
 in the implementation of the Hammer's cache coherence protocol. Earlier, 
 data was copied directly from one cache entry to another. This has been
 broken in to two parts. First, the data is copied from the source cache
 entry to a transaction buffer entry. Then, data is copied from the
 transaction buffer entry to the destination cache entry.
 
 This has been done to maintain the invariant - at any given instant, a
 multiple caches under a controller are exclusive with respect to each 
 other.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_hammer-cache.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/334/diff
 
 
 Testing
 ---
 
 The changes have been tested with ruby random tester using a single seed for 
 100,000 loads and number of processors = 1, 2, 4 and 8.
 
 
 Thanks,
 
 Nilay
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Hammer protocol: Change how data to copied from L1 to L2 cache and vice-versa

2011-01-04 Thread Brad Beckmann

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/334/#review607
---

Ship it!


Nevermind my previous statement.  I needed to look closer.  Everything looks 
good to me.

- Brad


On 2011-01-04 14:42:14, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/334/
 ---
 
 (Updated 2011-01-04 14:42:14)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This patch changes the manner in which data is copied from L1 to L2 cache
 in the implementation of the Hammer's cache coherence protocol. Earlier, 
 data was copied directly from one cache entry to another. This has been
 broken in to two parts. First, the data is copied from the source cache
 entry to a transaction buffer entry. Then, data is copied from the
 transaction buffer entry to the destination cache entry.
 
 This has been done to maintain the invariant - at any given instant, a
 multiple caches under a controller are exclusive with respect to each 
 other.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_hammer-cache.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/334/diff
 
 
 Testing
 ---
 
 The changes have been tested with ruby random tester using a single seed for 
 100,000 loads and number of processors = 1, 2, 4 and 8.
 
 
 Thanks,
 
 Nilay
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] m5/system directory

2011-01-04 Thread Ali Saidi


A long time ago we thought about putting a m5/system/ directory where
we would put architecture dependent code system code (boot loaders,
alpha console, etc). How do we feel about this? We could move the alpha
code in there now that HP relicensed it. Additionally, I've got a tiny
ARM boot loader I'm looking for a place for and a new repository seems
like overkill,. 

Thanks, 

Ali 

 ___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread Brad Beckmann

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/367/#review608
---


Hi Nate,

I have a couple questions:

1. Have you looked at the protocol trace output after your change?  Does it 
look exactly like it did before?  It seems that the output should be the same 
based on my brief inspection of your patch, but I would like to be sure about 
that.  It may not be obvious, but there is a specific rational behind the 
format of the protocol trace and I want to make sure that stays the same.

2. With your patch applied, what happens if one hits an assert when running 
interactively?  Previously, the process would abort allowing one to attach gdb 
and examine what is going on.  I liked that feature and it would be great if we 
could maintain it.  Could we port that feature to all of M5?

- Brad


On 2011-01-04 15:02:38, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/367/
 ---
 
 (Updated 2011-01-04 15:02:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 ruby: get rid of ruby's Debug.hh
 
 Get rid of the Debug class
 Get rid of ASSERT and use assert
 Use DPRINTF for ProtocolTrace
 
 
 Diffs
 -
 
   configs/ruby/Ruby.py 7338bc628489 
   src/mem/SConscript 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.hh 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.cc 7338bc628489 
   src/mem/ruby/common/Debug.hh 7338bc628489 
   src/mem/ruby/common/Debug.cc 7338bc628489 
   src/mem/ruby/common/Debug.py 7338bc628489 
   src/mem/ruby/common/Global.hh 7338bc628489 
   src/mem/ruby/common/Global.cc 7338bc628489 
   src/mem/ruby/common/SConscript 7338bc628489 
   src/mem/ruby/common/Set.cc 7338bc628489 
   src/mem/ruby/eventqueue/RubyEventQueue.cc 7338bc628489 
   src/mem/ruby/filters/BulkBloomFilter.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 7338bc628489 
   src/mem/ruby/network/simple/SimpleNetwork.cc 7338bc628489 
   src/mem/ruby/network/simple/Throttle.cc 7338bc628489 
   src/mem/ruby/network/simple/Topology.cc 7338bc628489 
   src/mem/ruby/profiler/Profiler.hh 7338bc628489 
   src/mem/ruby/profiler/Profiler.cc 7338bc628489 
   src/mem/ruby/slicc_interface/RubySlicc_Util.hh 7338bc628489 
   src/mem/ruby/storebuffer/storebuffer.cc 7338bc628489 
   src/mem/ruby/system/RubySystem.py 7338bc628489 
   src/mem/ruby/system/Sequencer.cc 7338bc628489 
   src/mem/ruby/system/System.cc 7338bc628489 
   src/mem/ruby/tester/DeterministicDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyPseudoThread.cc 7338bc628489 
   src/mem/ruby/tester/test_framework.cc 7338bc628489 
   src/mem/slicc/symbols/StateMachine.py 7338bc628489 
   src/mem/slicc/symbols/Type.py 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/367/diff
 
 
 Testing
 ---
 
 This compiles and passes all of the quick regressions, but it would be nice 
 for a Ruby developer to take a look and see if I got rid of any useful 
 functionality.
 
 
 Thanks,
 
 Nathan
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: Replace curTick global variable with accessor functions.

2011-01-04 Thread Steve Reinhardt


 On 2011-01-04 14:59:52, Nathan Binkert wrote:
  Maybe it's too much for this diff, but I think you can get rid of the 
  global variable and put _curTick in the event queue class.  Then you can 
  put a curTick() accessor into the EventQueue and EventManager classes, and 
  create a global curTick (though maybe with a different name like 
  mainCurTick() so we can tell what is what) that accesses 
  mainEventQueue.curTick().  Maybe not needed for this diff, but certainly 
  something that would seem to be a good step.  Thanks for doing this.  I've 
  been wanting to do exactly this for a while.

I want to keep this a purely syntactic change, because I think the semantic 
changes are going to require some discussion.  For example, my current 
next-step patch replaces mainEventQueue with an array of queues (so there is no 
single main event queue any more), and uses TLS to implement per-thread curTick 
values rather than embedding them in the queues, so it doesn't follow the path 
you're proposing.  If you want to discuss this further please start a new email 
thread.

The good news is that once this patch gets committed then all these options can 
be explored with fairly local changes.


- Steve


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/374/#review605
---


On 2011-01-04 14:43:38, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/374/
 ---
 
 (Updated 2011-01-04 14:43:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 Replace curTick global variable with accessor functions.
 This step makes it easy to replace the accessor functions
 (which still access a global variable) with ones that access
 per-thread curTick values.
 
 
 Diffs
 -
 
   src/arch/alpha/isa/decoder.isa 7338bc628489 
   src/arch/alpha/kernel_stats.cc 7338bc628489 
   src/arch/alpha/tru64/process.cc 7338bc628489 
   src/arch/arm/table_walker.cc 7338bc628489 
   src/arch/mips/isa.cc 7338bc628489 
   src/arch/mips/isa/formats/mt.isa 7338bc628489 
   src/arch/mips/locked_mem.hh 7338bc628489 
   src/arch/mips/mt.hh 7338bc628489 
   src/arch/sparc/ua2005.cc 7338bc628489 
   src/arch/x86/interrupts.cc 7338bc628489 
   src/base/cp_annotate.hh 7338bc628489 
   src/base/cp_annotate.cc 7338bc628489 
   src/base/fast_alloc.cc 7338bc628489 
   src/base/misc.cc 7338bc628489 
   src/base/remote_gdb.cc 7338bc628489 
   src/base/statistics.hh 7338bc628489 
   src/base/stats/mysql.cc 7338bc628489 
   src/base/stats/output.cc 7338bc628489 
   src/base/trace.hh 7338bc628489 
   src/cpu/base.hh 7338bc628489 
   src/cpu/base.cc 7338bc628489 
   src/cpu/checker/cpu.cc 7338bc628489 
   src/cpu/checker/cpu_impl.hh 7338bc628489 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/inorder_dyn_inst.cc 7338bc628489 
   src/cpu/inorder/pipeline_stage.cc 7338bc628489 
   src/cpu/inorder/reg_dep_map.cc 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.9stage.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
   src/cpu/inorder/resources/branch_predictor.cc 7338bc628489 
   src/cpu/inorder/resources/cache_unit.cc 7338bc628489 
   src/cpu/inorder/resources/execution_unit.cc 7338bc628489 
   src/cpu/inorder/resources/fetch_seq_unit.cc 7338bc628489 
   src/cpu/inorder/resources/graduation_unit.cc 7338bc628489 
   src/cpu/inorder/resources/mult_div_unit.cc 7338bc628489 
   src/cpu/o3/commit_impl.hh 7338bc628489 
   src/cpu/o3/cpu.hh 7338bc628489 
   src/cpu/o3/cpu.cc 7338bc628489 
   src/cpu/o3/fetch_impl.hh 7338bc628489 
   src/cpu/o3/inst_queue_impl.hh 7338bc628489 
   src/cpu/o3/lsq_impl.hh 7338bc628489 
   src/cpu/o3/lsq_unit.hh 7338bc628489 
   src/cpu/o3/lsq_unit_impl.hh 7338bc628489 
   src/cpu/o3/thread_context_impl.hh 7338bc628489 
   src/cpu/ozone/back_end.hh 7338bc628489 
   src/cpu/ozone/cpu.hh 7338bc628489 
   src/cpu/ozone/cpu_impl.hh 7338bc628489 
   src/cpu/ozone/front_end_impl.hh 7338bc628489 
   src/cpu/ozone/inorder_back_end.hh 7338bc628489 
   src/cpu/ozone/inst_queue_impl.hh 7338bc628489 
   src/cpu/ozone/lsq_unit.hh 7338bc628489 
   src/cpu/ozone/lsq_unit_impl.hh 7338bc628489 
   src/cpu/ozone/lw_back_end_impl.hh 7338bc628489 
   src/cpu/ozone/lw_lsq.hh 7338bc628489 
   src/cpu/ozone/lw_lsq_impl.hh 7338bc628489 
   src/cpu/pc_event.cc 7338bc628489 
   src/cpu/simple/atomic.cc 7338bc628489 
   src/cpu/simple/base.cc 7338bc628489 
   src/cpu/simple/timing.cc 7338bc628489 
   src/cpu/simple_thread.cc 7338bc628489 
   src/cpu/static_inst.cc 7338bc628489 
   src/cpu/testers/directedtest/RubyDirectedTester.cc 7338bc628489 
   

Re: [m5-dev] Review Request: Replace curTick global variable with accessor functions.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/374/#review610
---

Ship it!


- Ali


On 2011-01-04 14:43:38, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/374/
 ---
 
 (Updated 2011-01-04 14:43:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 Replace curTick global variable with accessor functions.
 This step makes it easy to replace the accessor functions
 (which still access a global variable) with ones that access
 per-thread curTick values.
 
 
 Diffs
 -
 
   src/arch/alpha/isa/decoder.isa 7338bc628489 
   src/arch/alpha/kernel_stats.cc 7338bc628489 
   src/arch/alpha/tru64/process.cc 7338bc628489 
   src/arch/arm/table_walker.cc 7338bc628489 
   src/arch/mips/isa.cc 7338bc628489 
   src/arch/mips/isa/formats/mt.isa 7338bc628489 
   src/arch/mips/locked_mem.hh 7338bc628489 
   src/arch/mips/mt.hh 7338bc628489 
   src/arch/sparc/ua2005.cc 7338bc628489 
   src/arch/x86/interrupts.cc 7338bc628489 
   src/base/cp_annotate.hh 7338bc628489 
   src/base/cp_annotate.cc 7338bc628489 
   src/base/fast_alloc.cc 7338bc628489 
   src/base/misc.cc 7338bc628489 
   src/base/remote_gdb.cc 7338bc628489 
   src/base/statistics.hh 7338bc628489 
   src/base/stats/mysql.cc 7338bc628489 
   src/base/stats/output.cc 7338bc628489 
   src/base/trace.hh 7338bc628489 
   src/cpu/base.hh 7338bc628489 
   src/cpu/base.cc 7338bc628489 
   src/cpu/checker/cpu.cc 7338bc628489 
   src/cpu/checker/cpu_impl.hh 7338bc628489 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/inorder_dyn_inst.cc 7338bc628489 
   src/cpu/inorder/pipeline_stage.cc 7338bc628489 
   src/cpu/inorder/reg_dep_map.cc 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.9stage.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
   src/cpu/inorder/resources/branch_predictor.cc 7338bc628489 
   src/cpu/inorder/resources/cache_unit.cc 7338bc628489 
   src/cpu/inorder/resources/execution_unit.cc 7338bc628489 
   src/cpu/inorder/resources/fetch_seq_unit.cc 7338bc628489 
   src/cpu/inorder/resources/graduation_unit.cc 7338bc628489 
   src/cpu/inorder/resources/mult_div_unit.cc 7338bc628489 
   src/cpu/o3/commit_impl.hh 7338bc628489 
   src/cpu/o3/cpu.hh 7338bc628489 
   src/cpu/o3/cpu.cc 7338bc628489 
   src/cpu/o3/fetch_impl.hh 7338bc628489 
   src/cpu/o3/inst_queue_impl.hh 7338bc628489 
   src/cpu/o3/lsq_impl.hh 7338bc628489 
   src/cpu/o3/lsq_unit.hh 7338bc628489 
   src/cpu/o3/lsq_unit_impl.hh 7338bc628489 
   src/cpu/o3/thread_context_impl.hh 7338bc628489 
   src/cpu/ozone/back_end.hh 7338bc628489 
   src/cpu/ozone/cpu.hh 7338bc628489 
   src/cpu/ozone/cpu_impl.hh 7338bc628489 
   src/cpu/ozone/front_end_impl.hh 7338bc628489 
   src/cpu/ozone/inorder_back_end.hh 7338bc628489 
   src/cpu/ozone/inst_queue_impl.hh 7338bc628489 
   src/cpu/ozone/lsq_unit.hh 7338bc628489 
   src/cpu/ozone/lsq_unit_impl.hh 7338bc628489 
   src/cpu/ozone/lw_back_end_impl.hh 7338bc628489 
   src/cpu/ozone/lw_lsq.hh 7338bc628489 
   src/cpu/ozone/lw_lsq_impl.hh 7338bc628489 
   src/cpu/pc_event.cc 7338bc628489 
   src/cpu/simple/atomic.cc 7338bc628489 
   src/cpu/simple/base.cc 7338bc628489 
   src/cpu/simple/timing.cc 7338bc628489 
   src/cpu/simple_thread.cc 7338bc628489 
   src/cpu/static_inst.cc 7338bc628489 
   src/cpu/testers/directedtest/RubyDirectedTester.cc 7338bc628489 
   src/cpu/testers/memtest/memtest.cc 7338bc628489 
   src/cpu/testers/rubytest/Check.cc 7338bc628489 
   src/cpu/testers/rubytest/RubyTester.cc 7338bc628489 
   src/cpu/trace/trace_cpu.cc 7338bc628489 
   src/dev/alpha/backdoor.cc 7338bc628489 
   src/dev/arm/pl011.cc 7338bc628489 
   src/dev/arm/pl111.cc 7338bc628489 
   src/dev/arm/rv_ctrl.cc 7338bc628489 
   src/dev/arm/timer_sp804.cc 7338bc628489 
   src/dev/etherbus.cc 7338bc628489 
   src/dev/etherdump.cc 7338bc628489 
   src/dev/etherlink.cc 7338bc628489 
   src/dev/ethertap.cc 7338bc628489 
   src/dev/i8254xGBe.cc 7338bc628489 
   src/dev/ide_disk.cc 7338bc628489 
   src/dev/intel_8254_timer.cc 7338bc628489 
   src/dev/io_device.cc 7338bc628489 
   src/dev/mc146818.hh 7338bc628489 
   src/dev/mc146818.cc 7338bc628489 
   src/dev/ns_gige.cc 7338bc628489 
   src/dev/sinic.cc 7338bc628489 
   src/dev/uart8250.cc 7338bc628489 
   src/kern/kernel_stats.cc 7338bc628489 
   src/mem/bridge.cc 7338bc628489 
   src/mem/bus.cc 7338bc628489 
   src/mem/cache/base.hh 7338bc628489 
   src/mem/cache/base.cc 7338bc628489 
   src/mem/cache/blk.hh 7338bc628489 
   src/mem/cache/cache_impl.hh 7338bc628489 
   src/mem/cache/mshr.hh 7338bc628489 
   

Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/367/#review611
---



src/mem/ruby/buffers/MessageBuffer.cc
http://reviews.m5sim.org/r/367/#comment833

Why continue to comment this out?



src/mem/ruby/common/Global.cc
http://reviews.m5sim.org/r/367/#comment834

This doesn't seem like a applicable change, also aren't they equivalent?


- Ali


On 2011-01-04 15:02:38, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/367/
 ---
 
 (Updated 2011-01-04 15:02:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 ruby: get rid of ruby's Debug.hh
 
 Get rid of the Debug class
 Get rid of ASSERT and use assert
 Use DPRINTF for ProtocolTrace
 
 
 Diffs
 -
 
   configs/ruby/Ruby.py 7338bc628489 
   src/mem/SConscript 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.hh 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.cc 7338bc628489 
   src/mem/ruby/common/Debug.hh 7338bc628489 
   src/mem/ruby/common/Debug.cc 7338bc628489 
   src/mem/ruby/common/Debug.py 7338bc628489 
   src/mem/ruby/common/Global.hh 7338bc628489 
   src/mem/ruby/common/Global.cc 7338bc628489 
   src/mem/ruby/common/SConscript 7338bc628489 
   src/mem/ruby/common/Set.cc 7338bc628489 
   src/mem/ruby/eventqueue/RubyEventQueue.cc 7338bc628489 
   src/mem/ruby/filters/BulkBloomFilter.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 7338bc628489 
   src/mem/ruby/network/simple/SimpleNetwork.cc 7338bc628489 
   src/mem/ruby/network/simple/Throttle.cc 7338bc628489 
   src/mem/ruby/network/simple/Topology.cc 7338bc628489 
   src/mem/ruby/profiler/Profiler.hh 7338bc628489 
   src/mem/ruby/profiler/Profiler.cc 7338bc628489 
   src/mem/ruby/slicc_interface/RubySlicc_Util.hh 7338bc628489 
   src/mem/ruby/storebuffer/storebuffer.cc 7338bc628489 
   src/mem/ruby/system/RubySystem.py 7338bc628489 
   src/mem/ruby/system/Sequencer.cc 7338bc628489 
   src/mem/ruby/system/System.cc 7338bc628489 
   src/mem/ruby/tester/DeterministicDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyPseudoThread.cc 7338bc628489 
   src/mem/ruby/tester/test_framework.cc 7338bc628489 
   src/mem/slicc/symbols/StateMachine.py 7338bc628489 
   src/mem/slicc/symbols/Type.py 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/367/diff
 
 
 Testing
 ---
 
 This compiles and passes all of the quick regressions, but it would be nice 
 for a Ruby developer to take a look and see if I got rid of any useful 
 functionality.
 
 
 Thanks,
 
 Nathan
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: inorder: get rid of references to mainEventQueue.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/368/#review612
---

Ship it!


- Ali


On 2011-01-04 14:40:57, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/368/
 ---
 
 (Updated 2011-01-04 14:40:57)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 inorder: get rid of references to mainEventQueue.
 Events need to be scheduled on the queue assigned
 to the SimObject, not on the global queue (which
 should be going away).
 Also cleaned up a number of redundant expressions
 that made the code unnecessarily verbose.
 
 
 Diffs
 -
 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/resource.hh 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/368/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: stats: rename StatEvent() function to schedStatEvent().

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/373/#review613
---

Ship it!


- Ali


On 2011-01-04 14:43:02, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/373/
 ---
 
 (Updated 2011-01-04 14:43:02)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 stats: rename StatEvent() function to schedStatEvent().
 This follows the style rules and is more descriptive.
 
 
 Diffs
 -
 
   src/python/m5/stats.py 7338bc628489 
   src/python/swig/stats.i 7338bc628489 
   src/sim/pseudo_inst.cc 7338bc628489 
   src/sim/simulate.cc 7338bc628489 
   src/sim/stat_control.hh 7338bc628489 
   src/sim/stat_control.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/373/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: sim: clean up CountedDrainEvent slightly.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/372/#review614
---

Ship it!


- Ali


On 2011-01-04 14:42:03, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/372/
 ---
 
 (Updated 2011-01-04 14:42:03)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 sim: clean up CountedDrainEvent slightly.
 There's no reason for it to derive from SimLoopExitEvent.
 This whole drain thing needs to be redone eventually,
 but this is a stopgap to make later changes to
 SimLoopExitEvent feasible.
 
 
 Diffs
 -
 
   src/sim/sim_events.hh 7338bc628489 
   src/sim/sim_events.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/372/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: sim: delete unused CheckSwapEvent code.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/371/#review615
---

Ship it!


- Ali


On 2011-01-04 14:41:53, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/371/
 ---
 
 (Updated 2011-01-04 14:41:53)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 sim: delete unused CheckSwapEvent code.
 There's no way to even create one of these anymore.
 
 
 Diffs
 -
 
   src/sim/sim_events.hh 7338bc628489 
   src/sim/sim_events.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/371/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: pseudoinst: get rid of mainEventQueue references.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/370/#review616
---

Ship it!


- Ali


On 2011-01-04 14:41:43, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/370/
 ---
 
 (Updated 2011-01-04 14:41:43)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 pseudoinst: get rid of mainEventQueue references.
 Avoid direct references to mainEventQueue in pseudo-insts
 by indirecting through associated CPU object.
 Made exitSimLoop() more flexible to enable some of these.
 
 
 Diffs
 -
 
   src/sim/pseudo_inst.cc 7338bc628489 
   src/sim/sim_events.cc 7338bc628489 
   src/sim/sim_exit.hh 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/370/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: inorder: replace schedEvent() code with reschedule().

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/369/#review617
---

Ship it!


My only question is does it work? it seems like the if statements don't 
translate exactly, but that could just be over-specifying the if (e.g. can you 
ever fall out with out any action?).

- Ali


On 2011-01-04 14:41:12, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/369/
 ---
 
 (Updated 2011-01-04 14:41:12)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 inorder: replace schedEvent() code with reschedule().
 There were several copies of similar functions that looked
 like they all replicated reschedule(), so I replaced them
 with direct calls.  Keeping this separate from the previous
 cset since there may be some subtle functional differences
 if the code ever reschedules an event that is scheduled but
 not squashed (though none were detected in the regressions).
 
 
 Diffs
 -
 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/369/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: RefCount: Add a unit test for reference counting pointers.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/365/#review618
---


It's pretty good. I think Nate's suggestion is great and maybe a little comment 
before each test // Test setting variable to NULL lowers ref count would be 
great. 

- Ali


On 2011-01-03 12:56:11, Gabe Black wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/365/
 ---
 
 (Updated 2011-01-03 12:56:11)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 RefCount: Add a unit test for reference counting pointers.
 
 This test exercises each of the functions in the reference counting pointer
 implementation individually (except get()) and verifies they have some
 minimially expected behavior. It also checks that reference counted objects
 are freed when their usage count goes to 0 in some basic situations,
 specifically a pointer being set to NULL and a pointer being deleted.
 
 
 Diffs
 -
 
   src/unittest/SConscript 3a790012d6ed 
   src/unittest/refcnttest.cc PRE-CREATION 
 
 Diff: http://reviews.m5sim.org/r/365/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Gabe
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: inorder: replace schedEvent() code with reschedule().

2011-01-04 Thread Steve Reinhardt


 On 2011-01-04 16:56:58, Ali Saidi wrote:
  My only question is does it work? it seems like the if statements don't 
  translate exactly, but that could just be over-specifying the if (e.g. can 
  you ever fall out with out any action?).

You're right, the issue is that the old code would silently do nothing if the 
event was already scheduled and not squashed, where the new code will forcibly 
reschedule a scheduled event whether it's squashed or not.  I discussed this 
with Korey and he thought it was an oversight, but I since added 
'assert(!scheduled() || squashed());' to each of these functions and re-ran the 
quick regressions with no ill effects.  So by that limited definition, yes, it 
works...


- Steve


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/369/#review617
---


On 2011-01-04 14:41:12, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/369/
 ---
 
 (Updated 2011-01-04 14:41:12)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 inorder: replace schedEvent() code with reschedule().
 There were several copies of similar functions that looked
 like they all replicated reschedule(), so I replaced them
 with direct calls.  Keeping this separate from the previous
 cset since there may be some subtle functional differences
 if the code ever reschedules an event that is scheduled but
 not squashed (though none were detected in the regressions).
 
 
 Diffs
 -
 
   src/cpu/inorder/cpu.hh 7338bc628489 
   src/cpu/inorder/cpu.cc 7338bc628489 
   src/cpu/inorder/resource.cc 7338bc628489 
   src/cpu/inorder/resource_pool.cc 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/369/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Steve
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/366/#review620
---

Ship it!


I think we talked about this and I'm ok with what we ended up on the mailing 
list... Bonus points if you colorize the output :)... 
Blue= '\033[94m'
Yellow =  '\033[94m'
Green = '\033[92m'
End = '\0330m'
CCCOMSTR = Blue + ' [  CC] ' + Yellow + '$TRANSFORMATION' + End






- Ali


On 2011-01-03 16:10:27, Steve Reinhardt wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/366/
 ---
 
 (Updated 2011-01-03 16:10:27)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 scons: show sources and targets when building.
 
 I like the brevity of Ali's recent change, but the ambiguity of
 sometimes showing the source and sometimes the target is a little
 confusing.  This patch makes scons typically list all sources and
 all targets for each action, with the common path prefix factored
 out for brevity.  It's a little more verbose now but also more
 informative.
 
 I'm not intending to add this to the commit message, but for review purposes, 
 here's some example output:
  [ CXX] ALPHA_SE/sim: main.cc - main.do
 Defining FAST_ALLOC_DEBUG as 0 in build/ALPHA_SE/config/fast_alloc_debug.hh.
 Defining FAST_ALLOC_STATS as 0 in build/ALPHA_SE/config/fast_alloc_stats.hh.
 Defining NO_FAST_ALLOC as 0 in build/ALPHA_SE/config/no_fast_alloc.hh.
  [ TRACING] ALPHA_SE/base:  - traceflags.hh
  [ CXX] ALPHA_SE/python/swig: pyevent.cc - pyevent.do
 Defining FULL_SYSTEM as 0 in build/ALPHA_SE/config/full_system.hh.
  [SO PARAM] MemObject - ALPHA_SE/params/MemObject.hh
  [SO PARAM] SimObject - ALPHA_SE/params/SimObject.hh
  [GENERATE] ALPHA_SE/arch:  - isa_traits.hh
  [ CXX] ALPHA_SE/python/swig: pyobject.cc - pyobject.do
  [SWIG] ALPHA_SE/python/swig: core.i - core_wrap.cc, core.py
  [ CXX] ALPHA_SE/python/swig: core_wrap.cc - core_wrap.do
  [SWIG] ALPHA_SE/python/swig: debug.i - debug_wrap.cc, debug.py
  [ CXX] ALPHA_SE/python/swig: debug_wrap.cc - debug_wrap.do
 (...skipping...)
  [GENERATE] ALPHA_SE/arch:  - vtophys.hh
  [ CFG ISA] alpha, arm, mips, no, power, sparc, x86 - 
 ALPHA_SE/config/the_isa.hh
  [GENERATE] ALPHA_SE/arch:  - types.hh
  [GENERATE] ALPHA_SE/arch:  - registers.hh
  [GENERATE] static_inst_exec_sigs.hh: AtomicSimpleCPU, InOrderCPU, O3CPU, 
 TimingSimpleCPU
  [EN PARAM] MemoryMode - ALPHA_SE/enums/MemoryMode.hh
  [SO PARAM] System - ALPHA_SE/params/System.hh
  [EN PARAM] OpClass - ALPHA_SE/enums/OpClass.hh
  [SO PARAM] PhysicalMemory - ALPHA_SE/params/PhysicalMemory.hh
  [ISA DESC] ALPHA_SE/arch/alpha: isa/main.isa - decoder.cc, decoder.hh, 
 max_inst_regs.hh, atomic_simple_cpu_exec.cc, inorder_cpu_exec.cc, 
 o3_cpu_exec.cc, timing_simple_cpu_exec.cc
  [ CXX] ALPHA_SE/base: remote_gdb.cc - remote_gdb.do
  [ CXX] ALPHA_SE/base: socket.cc - socket.do
 (...skipping...)
  [SW PARAM] Process - ALPHA_SE/python/m5/internal/vptype_Process.i
  [BLDPARAM] Process - ALPHA_SE/python/m5/internal/param_Process.i
  [BLDPARAM] SimObject - ALPHA_SE/python/m5/internal/param_SimObject.i
  [BLDPARAM] System - ALPHA_SE/python/m5/internal/param_System.i
  [ENUMSWIG] MemoryMode - ALPHA_SE/python/m5/internal/enum_MemoryMode.i
  [BLDPARAM] PhysicalMemory - 
 ALPHA_SE/python/m5/internal/param_PhysicalMemory.i
  [BLDPARAM] MemObject - ALPHA_SE/python/m5/internal/param_MemObject.i
  [SWIG] ALPHA_SE/python/m5/internal: vptype_Process.i - 
 vptype_Process_wrap.cc, vptype_Process.py
  [ CXX] ALPHA_SE/python/m5/internal: vptype_Process_wrap.cc - 
 vptype_Process_wrap.do
  [SW PARAM] AddrRange - ALPHA_SE/python/m5/internal/vptype_AddrRange.i
  [SWIG] ALPHA_SE/python/m5/internal: vptype_AddrRange.i - 
 vptype_AddrRange_wrap.cc, vptype_AddrRange.py
  [ CXX] ALPHA_SE/python/m5/internal: vptype_AddrRange_wrap.cc - 
 vptype_AddrRange_wrap.do
 (...skipping...)
  [EMBED PY] ALPHA_SE/python/m5/internal: param_BaseSimpleCPU.py - 
 param_BaseSimpleCPU.py.cc
  [ CXX] ALPHA_SE/python/m5/internal: param_BaseSimpleCPU.py.cc - 
 param_BaseSimpleCPU.py.do
  [EMBED PY] ALPHA_SE/python/m5/internal: param_LiveProcess.py - 
 param_LiveProcess.py.cc
  [ CXX] ALPHA_SE/python/m5/internal: param_LiveProcess.py.cc - 
 param_LiveProcess.py.do
  [ TRACING] ALPHA_SE/base:  - traceflags.py
  [EMBED PY] ALPHA_SE/base: traceflags.py - traceflags.py.cc
  [ CXX] ALPHA_SE/base: traceflags.py.cc - traceflags.py.do
  [ CXX] ALPHA_SE/base: date.cc - date.do
  [LINK] ALPHA_SE:  - m5.debug
 
 
 Diffs
 -
 
   SConstruct 7338bc628489 
   src/SConscript 7338bc628489 
   src/arch/SConscript 7338bc628489 
   src/arch/isa_parser.py 7338bc628489 
 
 

Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread nathan binkert

 I think we talked about this and I'm ok with what we ended up on the mailing 
 list... Bonus points if you colorize the output :)...
 Blue  = '\033[94m'
 Yellow =  '\033[94m'
 Green = '\033[92m'
 End = '\0330m'
 CCCOMSTR = Blue + ' [  CC] ' + Yellow + '$TRANSFORMATION' + End

 Neat idea, but you need to check sys.stdout.isatty() and conditionally
add the color.  Then you're going to want a way to override that if you're
piping through less :)  Seems like we could add a --color option to the
SCons command line.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] curTick global variable

2011-01-04 Thread nathan binkert

 I want to keep this a purely syntactic change, because I think the semantic 
 changes are going to require some discussion.  For example, my current 
 next-step patch replaces mainEventQueue with an array of queues (so there is 
 no single main event queue any more), and uses TLS to implement per-thread 
 curTick values rather than embedding them in the queues, so it doesn't follow 
 the path you're proposing.  If you want to discuss this further please start 
 a new email thread.

 The good news is that once this patch gets committed then all these options 
 can be explored with fairly local changes.


Interesting.  If you were going to do this, why do you need accessors at
all?  This seems to mean that I shouldn't have created the whole
EventManager thing and had schedule be a per-object thing.  TLS scares me,
but maybe that's unnecessarily. :)  How were you planning on having thread 1
schedule an event on thread 2's eventq?  Were you going to use some sort of
FIFO between threads?  One per eventq with a lock only on the producer side,
or one lock-free per pair of threads?  (I assume the former.  I have code
somewhere for the latter that I wrote a long time ago.)  Further assuming
that the FIFO is a yes, how were you going to check it?  Polling it
periodically?  Seems that this could all be rolled into the whole async
wrapper around the event queue.

Anyway, I've thought about this a lot.  Happy to do a phone call if you
want.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] m5/system directory

2011-01-04 Thread nathan binkert
 A long time ago we thought about putting a m5/system/arch directory where
 we would put architecture dependent code system code (boot loaders, alpha
 console, etc). How do we feel about this? We could move the alpha code in
 there now that HP relicensed it. Additionally, I've got a tiny ARM boot
 loader I'm looking for a place for and a new repository seems like
 overkill,\.

Seems fine to me.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread Nathan Binkert


 On 2011-01-04 16:48:28, Ali Saidi wrote:
  src/mem/ruby/buffers/MessageBuffer.cc, line 163
  http://reviews.m5sim.org/r/367/diff/3/?file=8418#file8418line163
 
  Why continue to comment this out?

Mostly because I didn't do it.  I don't like commented code in the tree, and 
one of the reasons I don't like it is because I don't know why it was commented 
out.  Should I remove it?


 On 2011-01-04 16:48:28, Ali Saidi wrote:
  src/mem/ruby/common/Global.cc, line 31
  http://reviews.m5sim.org/r/367/diff/3/?file=8423#file8423line31
 
  This doesn't seem like a applicable change, also aren't they equivalent?

Heh, I just had a discussion about this sort of thing with Gabe.  NULL is a C 
thing.  In C++, the standard says to use 0 for pointers.  In this specific 
case, I'd have to add a #include to bring in the #define for NULL.  Seems like 
a bad idea to me, no?


- Nathan


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/367/#review611
---


On 2011-01-04 15:02:38, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/367/
 ---
 
 (Updated 2011-01-04 15:02:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 ruby: get rid of ruby's Debug.hh
 
 Get rid of the Debug class
 Get rid of ASSERT and use assert
 Use DPRINTF for ProtocolTrace
 
 
 Diffs
 -
 
   configs/ruby/Ruby.py 7338bc628489 
   src/mem/SConscript 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.hh 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.cc 7338bc628489 
   src/mem/ruby/common/Debug.hh 7338bc628489 
   src/mem/ruby/common/Debug.cc 7338bc628489 
   src/mem/ruby/common/Debug.py 7338bc628489 
   src/mem/ruby/common/Global.hh 7338bc628489 
   src/mem/ruby/common/Global.cc 7338bc628489 
   src/mem/ruby/common/SConscript 7338bc628489 
   src/mem/ruby/common/Set.cc 7338bc628489 
   src/mem/ruby/eventqueue/RubyEventQueue.cc 7338bc628489 
   src/mem/ruby/filters/BulkBloomFilter.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 7338bc628489 
   src/mem/ruby/network/simple/SimpleNetwork.cc 7338bc628489 
   src/mem/ruby/network/simple/Throttle.cc 7338bc628489 
   src/mem/ruby/network/simple/Topology.cc 7338bc628489 
   src/mem/ruby/profiler/Profiler.hh 7338bc628489 
   src/mem/ruby/profiler/Profiler.cc 7338bc628489 
   src/mem/ruby/slicc_interface/RubySlicc_Util.hh 7338bc628489 
   src/mem/ruby/storebuffer/storebuffer.cc 7338bc628489 
   src/mem/ruby/system/RubySystem.py 7338bc628489 
   src/mem/ruby/system/Sequencer.cc 7338bc628489 
   src/mem/ruby/system/System.cc 7338bc628489 
   src/mem/ruby/tester/DeterministicDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyPseudoThread.cc 7338bc628489 
   src/mem/ruby/tester/test_framework.cc 7338bc628489 
   src/mem/slicc/symbols/StateMachine.py 7338bc628489 
   src/mem/slicc/symbols/Type.py 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/367/diff
 
 
 Testing
 ---
 
 This compiles and passes all of the quick regressions, but it would be nice 
 for a Ruby developer to take a look and see if I got rid of any useful 
 functionality.
 
 
 Thanks,
 
 Nathan
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: trace: reimplement the DTRACE function so it doesn't use a vector

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/352/#review625
---



src/base/debug.hh
http://reviews.m5sim.org/r/352/#comment838

This file needs doxygen comments. Minimally an @file comment, but 
preferably documenting each class as well.



src/base/debug.hh
http://reviews.m5sim.org/r/352/#comment837

The things we do to not use varargs 



src/base/debug.cc
http://reviews.m5sim.org/r/352/#comment839

These comments should really be doxygen comments

and there should be ones for the various functions below (e.g. findFlag)



src/base/debug.cc
http://reviews.m5sim.org/r/352/#comment840

More comments please



src/base/remote_gdb.cc
http://reviews.m5sim.org/r/352/#comment841

Mabye emitting the individual header files and the compound header file and 
the user can choose?



src/base/trace.hh
http://reviews.m5sim.org/r/352/#comment842

Doxygen



src/python/m5/debug.py
http://reviews.m5sim.org/r/352/#comment843

More comments please, at least what this file exists to do


- Ali


On 2010-12-21 08:36:19, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/352/
 ---
 
 (Updated 2010-12-21 08:36:19)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 trace: reimplement the DTRACE function so it doesn't use a vector
 
 One question I have about this stuff is if I should call everything trace, or 
 debug?  This diff is somewhat confused about that (some things are trace and 
 some things are debug) and I expect to fix it. We always called this stuff 
 trace flags in the past, but we I would like to start using these flags for 
 other things.  For example, turning on and off debugging breakpoints of 
 different kinds.  Execution tracing is a totally different mechanism but does 
 use trace flags.  My personal inclination is that trace flag is probably a 
 bad name, but perhaps debug is a bad name too.  Just call it flags?  Or 
 SimFlags?
 
 
 Diffs
 -
 
   src/SConscript 4a3bddd74f36 
   src/arch/alpha/interrupts.hh 4a3bddd74f36 
   src/arch/alpha/kernel_stats.cc 4a3bddd74f36 
   src/arch/alpha/linux/process.cc 4a3bddd74f36 
   src/arch/alpha/linux/system.cc 4a3bddd74f36 
   src/arch/alpha/process.cc 4a3bddd74f36 
   src/arch/alpha/remote_gdb.cc 4a3bddd74f36 
   src/arch/alpha/stacktrace.hh 4a3bddd74f36 
   src/arch/alpha/system.cc 4a3bddd74f36 
   src/arch/alpha/tlb.cc 4a3bddd74f36 
   src/arch/alpha/vtophys.cc 4a3bddd74f36 
   src/arch/arm/faults.cc 4a3bddd74f36 
   src/arch/arm/isa.hh 4a3bddd74f36 
   src/arch/arm/isa.cc 4a3bddd74f36 
   src/arch/arm/isa/includes.isa 4a3bddd74f36 
   src/arch/arm/nativetrace.cc 4a3bddd74f36 
   src/arch/arm/predecoder.cc 4a3bddd74f36 
   src/arch/arm/process.cc 4a3bddd74f36 
   src/arch/arm/remote_gdb.cc 4a3bddd74f36 
   src/arch/arm/stacktrace.hh 4a3bddd74f36 
   src/arch/arm/tlb.cc 4a3bddd74f36 
   src/arch/mips/faults.cc 4a3bddd74f36 
   src/arch/mips/isa.cc 4a3bddd74f36 
   src/arch/mips/isa/includes.isa 4a3bddd74f36 
   src/arch/mips/linux/process.cc 4a3bddd74f36 
   src/arch/mips/locked_mem.hh 4a3bddd74f36 
   src/arch/mips/process.cc 4a3bddd74f36 
   src/arch/mips/stacktrace.hh 4a3bddd74f36 
   src/arch/mips/tlb.cc 4a3bddd74f36 
   src/arch/power/process.cc 4a3bddd74f36 
   src/arch/power/stacktrace.hh 4a3bddd74f36 
   src/arch/power/tlb.cc 4a3bddd74f36 
   src/arch/sparc/interrupts.hh 4a3bddd74f36 
   src/arch/sparc/isa.cc 4a3bddd74f36 
   src/arch/sparc/isa/includes.isa 4a3bddd74f36 
   src/arch/sparc/process.cc 4a3bddd74f36 
   src/arch/sparc/remote_gdb.cc 4a3bddd74f36 
   src/arch/sparc/stacktrace.hh 4a3bddd74f36 
   src/arch/sparc/tlb.cc 4a3bddd74f36 
   src/arch/sparc/ua2005.cc 4a3bddd74f36 
   src/arch/sparc/vtophys.cc 4a3bddd74f36 
   src/arch/x86/faults.cc 4a3bddd74f36 
   src/arch/x86/insts/microregop.cc 4a3bddd74f36 
   src/arch/x86/insts/static_inst.hh 4a3bddd74f36 
   src/arch/x86/interrupts.cc 4a3bddd74f36 
   src/arch/x86/isa/includes.isa 4a3bddd74f36 
   src/arch/x86/nativetrace.cc 4a3bddd74f36 
   src/arch/x86/pagetable_walker.cc 4a3bddd74f36 
   src/arch/x86/predecoder.hh 4a3bddd74f36 
   src/arch/x86/predecoder.cc 4a3bddd74f36 
   src/arch/x86/process.cc 4a3bddd74f36 
   src/arch/x86/stacktrace.hh 4a3bddd74f36 
   src/arch/x86/tlb.cc 4a3bddd74f36 
   src/base/debug.hh 4a3bddd74f36 
   src/base/debug.cc 4a3bddd74f36 
   src/base/loader/aout_object.cc 4a3bddd74f36 
   src/base/loader/ecoff_object.cc 4a3bddd74f36 
   src/base/loader/elf_object.cc 4a3bddd74f36 
   src/base/loader/raw_object.cc 4a3bddd74f36 
   src/base/mysql.cc 4a3bddd74f36 
   src/base/remote_gdb.cc 4a3bddd74f36 
   src/base/trace.hh 

Re: [m5-dev] Review Request: debug: create a Debug namespace

2011-01-04 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/351/#review627
---

Ship it!


- Ali


On 2010-12-21 08:25:03, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/351/
 ---
 
 (Updated 2010-12-21 08:25:03)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 debug: create a Debug namespace
 
 
 Diffs
 -
 
   src/arch/alpha/ev5.cc 4a3bddd74f36 
   src/base/debug.hh 4a3bddd74f36 
   src/base/debug.cc 4a3bddd74f36 
   src/base/statistics.cc 4a3bddd74f36 
   src/cpu/pc_event.cc 4a3bddd74f36 
   src/dev/ns_gige.cc 4a3bddd74f36 
   src/dev/sinic.cc 4a3bddd74f36 
   src/sim/debug.cc 4a3bddd74f36 
   src/sim/pseudo_inst.cc 4a3bddd74f36 
 
 Diff: http://reviews.m5sim.org/r/351/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Nathan
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] curTick global variable

2011-01-04 Thread Ali Saidi

On Jan 4, 2011, at 7:56 PM, nathan binkert wrote:
 Interesting.  If you were going to do this, why do you need accessors at all? 
  This seems to mean that I shouldn't have created the whole EventManager 
 thing and had schedule be a per-object thing.  TLS scares me, but maybe 
 that's unnecessarily. :)  How were you planning on having thread 1 schedule 
 an event on thread 2's eventq?  Were you going to use some sort of FIFO 
 between threads?  One per eventq with a lock only on the producer side, or 
 one lock-free per pair of threads?  (I assume the former.  I have code 
 somewhere for the latter that I wrote a long time ago.)  Further assuming 
 that the FIFO is a yes, how were you going to check it?  Polling it 
 periodically?  Seems that this could all be rolled into the whole async 
 wrapper around the event queue.

Just to dive in for a moment here. TLS doesn't scare me. I've looked at a lot 
of ways to do the same thing and TLS is so much cleaner than the alternative 
getspecific/setspecific. 

Ali


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: util: python implementation of a routine that will sort includes

2011-01-04 Thread Ali Saidi

On Jan 4, 2011, at 8:15 PM, nathan binkert wrote:

 I think we've beat this to death on the mailing list. My only comment is that 
 before it becomes part of the commit hook, please make sure that you can't 
 throw anything at it that will cause an exception. 
 
 A better thing to do is handle all exceptions in the hook and just return 
 failure if used as a hook.  Right?
Yea, although debugging it is ugly then, but yea probably.

Ali


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread Nilay Vaish


 On 2011-01-04 16:31:01, Brad Beckmann wrote:
  Hi Nate,

I have a couple questions:

1. Have you looked at the protocol trace output after your change?  Does it 
look exactly like it did before?  It seems that the output should be the same 
based on my brief inspection of your patch, but I would like to be sure about 
that.  It may not be obvious, but there is a specific rational behind the 
format of the protocol trace and I want to make sure that stays the same.

2. With your patch applied, what happens if one hits an assert when running 
interactively?  Previously, the process would abort allowing one to attach gdb 
and examine what is going on.  I liked that feature and it would be great if we 
could maintain it.  Could we port that feature to all of M5?
 
 Nathan Binkert wrote:
 1) I have not, because I don't know how, but I tried hard to make it 
 exactly the same.  Can you help me out?  It won't look identical because 
 DPRINTF prepends some stuff (curTick and object name)
 
 2) we don't have a mechanism to have the process stall until GDB is 
 attached, but given that this worked in Ruby only, I'd agree that this should 
 be something that we do globally in M5.  The right way to do this would be to 
 handle SIGABRT and stall in the abort handler (I think that should work).  
 Can we work on this patch and do that as a separate one?

Brad, do you have some protocol trace with you? I have seen the trace that gets 
generated with the current trace facility using Ruby trace flag. It prints all 
the events for all the cache controllers and network routers. If you prefer, I 
can send you an example trace. Or you can generate one by running m5.opt with 
trace file and trace flag options supplied.

./build/ALPHA_SE_MESI_CMP_directory/m5.opt  --trace-file=MESI.trace  
--trace-flags=Ruby ./configs/example/ruby_random_test.py -l 1000


- Nilay


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/367/#review608
---


On 2011-01-04 15:02:38, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/367/
 ---
 
 (Updated 2011-01-04 15:02:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 ruby: get rid of ruby's Debug.hh
 
 Get rid of the Debug class
 Get rid of ASSERT and use assert
 Use DPRINTF for ProtocolTrace
 
 
 Diffs
 -
 
   configs/ruby/Ruby.py 7338bc628489 
   src/mem/SConscript 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.hh 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.cc 7338bc628489 
   src/mem/ruby/common/Debug.hh 7338bc628489 
   src/mem/ruby/common/Debug.cc 7338bc628489 
   src/mem/ruby/common/Debug.py 7338bc628489 
   src/mem/ruby/common/Global.hh 7338bc628489 
   src/mem/ruby/common/Global.cc 7338bc628489 
   src/mem/ruby/common/SConscript 7338bc628489 
   src/mem/ruby/common/Set.cc 7338bc628489 
   src/mem/ruby/eventqueue/RubyEventQueue.cc 7338bc628489 
   src/mem/ruby/filters/BulkBloomFilter.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 7338bc628489 
   src/mem/ruby/network/simple/SimpleNetwork.cc 7338bc628489 
   src/mem/ruby/network/simple/Throttle.cc 7338bc628489 
   src/mem/ruby/network/simple/Topology.cc 7338bc628489 
   src/mem/ruby/profiler/Profiler.hh 7338bc628489 
   src/mem/ruby/profiler/Profiler.cc 7338bc628489 
   src/mem/ruby/slicc_interface/RubySlicc_Util.hh 7338bc628489 
   src/mem/ruby/storebuffer/storebuffer.cc 7338bc628489 
   src/mem/ruby/system/RubySystem.py 7338bc628489 
   src/mem/ruby/system/Sequencer.cc 7338bc628489 
   src/mem/ruby/system/System.cc 7338bc628489 
   src/mem/ruby/tester/DeterministicDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyPseudoThread.cc 7338bc628489 
   src/mem/ruby/tester/test_framework.cc 7338bc628489 
   src/mem/slicc/symbols/StateMachine.py 7338bc628489 
   src/mem/slicc/symbols/Type.py 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/367/diff
 
 
 Testing
 ---
 
 This compiles and passes all of the quick regressions, but it would be nice 
 for a Ruby developer to take a look and see if I got rid of any useful 
 functionality.
 
 
 Thanks,
 
 Nathan
 


___
m5-dev mailing list
m5-dev@m5sim.org

[m5-dev] changeset in m5: Ruby: Updates MOESI Hammer protocol

2011-01-04 Thread Nilay Vaish
changeset 9f9e10967912 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=9f9e10967912
description:
Ruby: Updates MOESI Hammer protocol
This patch changes the manner in which data is copied from L1 to L2 
cache in
the implementation of the Hammer's cache coherence protocol. Earlier, 
data was
copied directly from one cache entry to another. This has been broken 
in to
two parts. First, the data is copied from the source cache entry to a
transaction buffer entry. Then, data is copied from the transaction 
buffer
entry to the destination cache entry.

This has been done to maintain the invariant - at any given instant, 
multiple
caches under a controller are exclusive with respect to each other.

diffstat:

 src/mem/protocol/MOESI_hammer-cache.sm |  103 ++--
 1 files changed, 57 insertions(+), 46 deletions(-)

diffs (199 lines):

diff -r c819526b7c2a -r 9f9e10967912 src/mem/protocol/MOESI_hammer-cache.sm
--- a/src/mem/protocol/MOESI_hammer-cache.smTue Jan 04 17:11:49 2011 -0500
+++ b/src/mem/protocol/MOESI_hammer-cache.smTue Jan 04 21:40:49 2011 -0600
@@ -689,11 +689,22 @@
   action(k_popMandatoryQueue, k, desc=Pop mandatory queue.) {
 mandatoryQueue_in.dequeue();
   }
-  
+
   action(l_popForwardQueue, l, desc=Pop forwareded request queue.) {
 forwardToCache_in.dequeue();
   }
 
+  action(hp_copyFromTBEToL2, li, desc=Copy data from TBE to L2 cache 
entry.) {
+getCacheEntry(address).Dirty   := TBEs[address].Dirty;
+getCacheEntry(address).DataBlk := TBEs[address].DataBlk;
+  }
+
+  action(nb_copyFromTBEToL1, fu, desc=Copy data from TBE to L1 cache 
entry.) {
+getCacheEntry(address).Dirty   := TBEs[address].Dirty;
+getCacheEntry(address).DataBlk := TBEs[address].DataBlk;
+getCacheEntry(address).FromL2 := true;
+  }
+
   action(m_decrementNumberOfMessages, m, desc=Decrement the number of 
messages for which we're waiting) {
 peek(responseToCache_in, ResponseMsg) {
   assert(in_msg.Acks  0);
@@ -890,28 +901,6 @@
 L2cacheMemory.deallocate(address);
   }
 
-  action(ss_copyFromL1toL2, \s, desc=Copy data block from L1 (I or D) to 
L2) {
-if (L1DcacheMemory.isTagPresent(address)) {
-  static_cast(Entry, L2cacheMemory[address]).Dirty := static_cast(Entry, 
L1DcacheMemory[address]).Dirty;
-  static_cast(Entry, L2cacheMemory[address]).DataBlk := static_cast(Entry, 
L1DcacheMemory[address]).DataBlk;
-} else {
-  static_cast(Entry, L2cacheMemory[address]).Dirty := static_cast(Entry, 
L1IcacheMemory[address]).Dirty;
-  static_cast(Entry, L2cacheMemory[address]).DataBlk := static_cast(Entry, 
L1IcacheMemory[address]).DataBlk;
-}
-  }
-  
-  action(tt_copyFromL2toL1, \t, desc=Copy data block from L2 to L1 (I or 
D)) {
-if (L1DcacheMemory.isTagPresent(address)) {
-  static_cast(Entry, L1DcacheMemory[address]).Dirty := static_cast(Entry, 
L2cacheMemory[address]).Dirty;
-  static_cast(Entry, L1DcacheMemory[address]).DataBlk := 
static_cast(Entry, L2cacheMemory[address]).DataBlk;
-  static_cast(Entry, L1DcacheMemory[address]).FromL2 := true;
-} else {
-  static_cast(Entry, L1IcacheMemory[address]).Dirty := static_cast(Entry, 
L2cacheMemory[address]).Dirty;
-  static_cast(Entry, L1IcacheMemory[address]).DataBlk := 
static_cast(Entry, L2cacheMemory[address]).DataBlk;
-  static_cast(Entry, L1IcacheMemory[address]).FromL2 := true;
-}
-  }
-
   action(uu_profileMiss, \u, desc=Profile the demand miss) {
 peek(mandatoryQueue_in, CacheMsg) {
   if (L1IcacheMemory.isTagPresent(address)) {
@@ -956,97 +945,119 @@
 
   // Transitions moving data between the L1 and L2 caches
   transition({I, S, O, M, MM}, L1_to_L2) {
+i_allocateTBE;
+gg_deallocateL1CacheBlock;
 vv_allocateL2CacheBlock;
-ss_copyFromL1toL2; // Not really needed for state I
-gg_deallocateL1CacheBlock;
+hp_copyFromTBEToL2;
+s_deallocateTBE;
   }
-  
+
   transition(I, Trigger_L2_to_L1D, IT) {
+i_allocateTBE;
+rr_deallocateL2CacheBlock;
 ii_allocateL1DCacheBlock;
-tt_copyFromL2toL1; // Not really needed for state I
+nb_copyFromTBEToL1; // Not really needed for state I
+s_deallocateTBE;
 uu_profileMiss;
-rr_deallocateL2CacheBlock;
 zz_recycleMandatoryQueue;
 ll_L2toL1Transfer;
   }
 
   transition(S, Trigger_L2_to_L1D, ST) {
+i_allocateTBE;
+rr_deallocateL2CacheBlock;
 ii_allocateL1DCacheBlock;
-tt_copyFromL2toL1;
+nb_copyFromTBEToL1;
+s_deallocateTBE;
 uu_profileMiss;
-rr_deallocateL2CacheBlock;
 zz_recycleMandatoryQueue;
 ll_L2toL1Transfer;
   }
 
   transition(O, Trigger_L2_to_L1D, OT) {
+i_allocateTBE;
+rr_deallocateL2CacheBlock;
 ii_allocateL1DCacheBlock;
-tt_copyFromL2toL1;
+nb_copyFromTBEToL1;
+s_deallocateTBE;
 uu_profileMiss;
-rr_deallocateL2CacheBlock;
 zz_recycleMandatoryQueue;
 

Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread Steve Reinhardt
On Tue, Jan 4, 2011 at 5:44 PM, nathan binkert n...@binkert.org wrote:

 I think we talked about this and I'm ok with what we ended up on the mailing 
 list... Bonus points if you colorize the output :)...
 Blue = '\033[94m'
 Yellow =  '\033[94m'
 Green = '\033[92m'
 End = '\0330m'
 CCCOMSTR = Blue + ' [  CC] ' + Yellow + '$TRANSFORMATION' + End

 Neat idea, but you need to check sys.stdout.isatty() and conditionally
 add the color.  Then you're going to want a way to override that if you're
 piping through less :)  Seems like we could add a --color option to the
 SCons command line.


It actually crossed my mind earlier today to use colorization to distinguish
the common prefix part of the source path from the source-specific part, as
a way of eliminating the ambiguity of how to form the target.

The isatty check would take care of the less problem, though...

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] curTick global variable

2011-01-04 Thread nathan binkert
 Just to dive in for a moment here. TLS doesn't scare me. I've looked at a
 lot of ways to do the same thing and TLS is so much cleaner than the
 alternative getspecific/setspecific.

I was more wondering about the global variable thing (TLS is
essentially a global) more than TLS vs getspecific/setspecific.  The
mechansim for doing TLS isn't really an issue for me.  I was trying to
understand how one object (in thread 1) might call a method on another
object which in turn would schedule an event for that object (which
should be in thread 2, the target's thread).

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: scons: show sources and targets when building.

2011-01-04 Thread nathan binkert
 Neat idea, but you need to check sys.stdout.isatty() and conditionally
 add the color.  Then you're going to want a way to override that if you're
 piping through less :)  Seems like we could add a --color option to the
 SCons command line.

 It actually crossed my mind earlier today to use colorization to distinguish
 the common prefix part of the source path from the source-specific part, as
 a way of eliminating the ambiguity of how to form the target.

 The isatty check would take care of the less problem, though...
Actually less -r allows you to take the control characters, so the
--color would override the isatty() == false and output the control
codes anyway.

As a thought, TRANSFORM should probably take the action abbreviation
(e.g. CC) as a parameter if you're going to do the colorization.

This is all overkill, but is a nice feature imho.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread nathan binkert

 Brad, do you have some protocol trace with you? I have seen the trace that 
 gets generated with the current trace facility using Ruby trace flag. It 
 prints all the events for all the cache controllers and network routers. If 
 you prefer, I can send you an example trace. Or you can generate one by 
 running m5.opt with trace file and trace flag options supplied.

 ./build/ALPHA_SE_MESI_CMP_directory/m5.opt  --trace-file=MESI.trace  
 --trace-flags=Ruby ./configs/example/ruby_random_test.py -l 1000

 Thanks for testing Nilay!

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: ruby: get rid of ruby's Debug.hh

2011-01-04 Thread Nathan Binkert


 On 2011-01-04 19:17:43, Nilay Vaish wrote:
  src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc, line 194
  http://reviews.m5sim.org/r/367/diff/3/?file=8431#file8431line194
 
  Should this not be converted to DPRINTF()?

Perhaps, but that is really a separate change.  I don't know what flag to base 
it on.  I only changed from printf to cprintf so I wouldn't have to #include 
cstdio


- Nathan


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/367/#review628
---


On 2011-01-04 15:02:38, Nathan Binkert wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/367/
 ---
 
 (Updated 2011-01-04 15:02:38)
 
 
 Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
 Nathan Binkert.
 
 
 Summary
 ---
 
 ruby: get rid of ruby's Debug.hh
 
 Get rid of the Debug class
 Get rid of ASSERT and use assert
 Use DPRINTF for ProtocolTrace
 
 
 Diffs
 -
 
   configs/ruby/Ruby.py 7338bc628489 
   src/mem/SConscript 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.hh 7338bc628489 
   src/mem/ruby/buffers/MessageBuffer.cc 7338bc628489 
   src/mem/ruby/common/Debug.hh 7338bc628489 
   src/mem/ruby/common/Debug.cc 7338bc628489 
   src/mem/ruby/common/Debug.py 7338bc628489 
   src/mem/ruby/common/Global.hh 7338bc628489 
   src/mem/ruby/common/Global.cc 7338bc628489 
   src/mem/ruby/common/SConscript 7338bc628489 
   src/mem/ruby/common/Set.cc 7338bc628489 
   src/mem/ruby/eventqueue/RubyEventQueue.cc 7338bc628489 
   src/mem/ruby/filters/BulkBloomFilter.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
 7338bc628489 
   src/mem/ruby/network/garnet/flexible-pipeline/flit.hh 7338bc628489 
   src/mem/ruby/network/simple/SimpleNetwork.cc 7338bc628489 
   src/mem/ruby/network/simple/Throttle.cc 7338bc628489 
   src/mem/ruby/network/simple/Topology.cc 7338bc628489 
   src/mem/ruby/profiler/Profiler.hh 7338bc628489 
   src/mem/ruby/profiler/Profiler.cc 7338bc628489 
   src/mem/ruby/slicc_interface/RubySlicc_Util.hh 7338bc628489 
   src/mem/ruby/storebuffer/storebuffer.cc 7338bc628489 
   src/mem/ruby/system/RubySystem.py 7338bc628489 
   src/mem/ruby/system/Sequencer.cc 7338bc628489 
   src/mem/ruby/system/System.cc 7338bc628489 
   src/mem/ruby/tester/DeterministicDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyDriver.cc 7338bc628489 
   src/mem/ruby/tester/RaceyPseudoThread.cc 7338bc628489 
   src/mem/ruby/tester/test_framework.cc 7338bc628489 
   src/mem/slicc/symbols/StateMachine.py 7338bc628489 
   src/mem/slicc/symbols/Type.py 7338bc628489 
 
 Diff: http://reviews.m5sim.org/r/367/diff
 
 
 Testing
 ---
 
 This compiles and passes all of the quick regressions, but it would be nice 
 for a Ruby developer to take a look and see if I got rid of any useful 
 functionality.
 
 
 Thanks,
 
 Nathan
 


___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: RefCount: Add a unit test for reference counting pointers.

2011-01-04 Thread nathan binkert
 So do we want to define a standard set of assert like
 macros/functions/whatever? If we're going to go for a fixed format we
 should stick that in a header somewhere. I went with asserts because
 they pretty conveniently check the result and blow up if there's a
 problem, but printing PASS/FAIL would be fine too.

Sounds like a really good idea to me.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Review Request: util: python implementation of a routine that will sort includes

2011-01-04 Thread nathan binkert
 I think we've beat this to death on the mailing list. My only comment is
 that before it becomes part of the commit hook, please make sure that you
 can't throw anything at it that will cause an exception.

 A better thing to do is handle all exceptions in the hook and just return
 failure if used as a hook.  Right?

 Yea, although debugging it is ugly then, but yea probably.

I can still print the stack trace, but abort the transaction cleanly.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev