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

2011-01-03 Thread Cron Daemon
 * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-atomic 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing 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-atomic 
passed.
* build/ALPHA_SE/tests/fast/quick/01.hello-2T-smt/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/00.hello/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/inorder-timing 
passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer
 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/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby 
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/50.memtest/alpha/linux/memtest-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_MOESI_CMP_directory/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_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_token/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token
 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_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual
 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-atomic-dual
 passed.
* 
build/ALPHA_FS/tests/fast/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic
 passed.
* 
build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic 
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/simple-timing-ruby 
passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/o3-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/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest 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/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/00.hello/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-atomic 
passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing-ruby 
passed.
* 

Re: [m5-dev] Review Request: Add seed option to ruby_random_test.py

2011-01-03 Thread Brad Beckmann

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


Hi Nilay,

This feature is long overdue, but I believe it is best if we add the command 
line to Ruby.py.  That way all ruby configuration, including ruby_random_test, 
can use this feature.

Brad

- Brad


On 2010-12-29 09:18:47, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/361/
 ---
 
 (Updated 2010-12-29 09:18:47)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This patch adds an option to the script ruby_random_test.py for setting the 
 parameter m_random_seed used for randomizing delays in the memory system.
 
 
 Diffs
 -
 
   configs/example/ruby_random_test.py fbf4b1b18202 
 
 Diff: http://reviews.m5sim.org/r/361/diff
 
 
 Testing
 ---
 
 The number of cycles required for executing a particular number of loads 
 changes with different seeds.
 
 
 Thanks,
 
 Nilay
 


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


Re: [m5-dev] Review Request: Add seed option to ruby_random_test.py

2011-01-03 Thread Nilay Vaish

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

(Updated 2011-01-03 09:54:30.940063)


Review request for Default.


Changes
---

Brad, I was waiting for you to comment on where you would prefer this option to 
go. I have made the change. I did some minimal testing using 
ruby_random_test.py. The number of ticks for a fixed number of loads change 
when I supply different numbers as random seeds.


Summary
---

This patch adds an option to the script ruby_random_test.py for setting the 
parameter m_random_seed used for randomizing delays in the memory system.


Diffs (updated)
-

  configs/ruby/Ruby.py UNKNOWN 

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


Testing
---

The number of cycles required for executing a particular number of loads 
changes with different seeds.


Thanks,

Nilay

___
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-03 Thread Steve Reinhardt

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



src/mem/ruby/slicc_interface/AbstractCacheEntry.hh
http://reviews.m5sim.org/r/358/#comment823

It looks like you're also changing the lock flag from being a separate 
table to a cache entry field... this seems reasonable, but also seems 
independent of the other changes.  I don't know that it's worth separating into 
separate changeset, but there should be some mention of this in the commit 
message I think.



src/mem/slicc/ast/ActionDeclAST.py
http://reviews.m5sim.org/r/358/#comment822

The expression '%s % foo' is a pretty unconventional way to force foo to 
be a string :-).  If foo is already a string (which might be the case here) you 
don't need it at all.  If foo is not a string, the conventional way to force a 
conversion is 'str(foo)'.  I see there are a number of places where you do this.


- Steve


On 2010-12-31 17:50:59, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/358/
 ---
 
 (Updated 2010-12-31 17:50:59)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 The purpose of this patch is to change the way CacheMemory interfaces with 
 coherence protocols. Currently, whenever a cache controller (defined in the 
 protocol under consideration) needs to carry out any operation on a cache 
 block, it looks up the tag hash map and figures out whether or not the block 
 exists in the cache. In case it does exist, the operation is carried out 
 (which requires another lookup). Over a single clock cycle, multiple such 
 lookups take place as observed through profiling of different protocols. It 
 was seen that the tag lookup takes anything from 10% to 20% of the simulation 
 time. In order to reduce this time, this patch is being posted. The 
 CacheMemory class now will have a function that will return pointer to a 
 cache block entry, instead of a reference (though the function that returns 
 the reference has been retained currently). Functions have been introduced 
 for setting/unsetting a pointer and check its pointer. Similar changes have 
 been carried out for Transaction Buffer entries as well.
 
 Note that changes are required to both SLICC and the protocol files. This 
 patch carries out changes to SLICC and committing this patch alone, I 
 believe, will ___break___ all the protocols. I am working on patching the 
 protocols as well. This patch is being put to get feed back from other 
 developers.
 
 
 Diffs
 -
 
   src/mem/protocol/RubySlicc_Types.sm UNKNOWN 
   src/mem/ruby/slicc_interface/AbstractCacheEntry.hh UNKNOWN 
   src/mem/ruby/slicc_interface/AbstractCacheEntry.cc UNKNOWN 
   src/mem/ruby/system/CacheMemory.hh UNKNOWN 
   src/mem/ruby/system/CacheMemory.cc UNKNOWN 
   src/mem/ruby/system/TBETable.hh UNKNOWN 
   src/mem/slicc/ast/ActionDeclAST.py UNKNOWN 
   src/mem/slicc/ast/FormalParamAST.py UNKNOWN 
   src/mem/slicc/ast/FuncCallExprAST.py UNKNOWN 
   src/mem/slicc/ast/FuncDeclAST.py UNKNOWN 
   src/mem/slicc/ast/InPortDeclAST.py UNKNOWN 
   src/mem/slicc/ast/IsValidPtrExprAST.py PRE-CREATION 
   src/mem/slicc/ast/MethodCallExprAST.py UNKNOWN 
   src/mem/slicc/ast/StaticCastAST.py UNKNOWN 
   src/mem/slicc/ast/TypeDeclAST.py UNKNOWN 
   src/mem/slicc/ast/__init__.py UNKNOWN 
   src/mem/slicc/parser.py UNKNOWN 
   src/mem/slicc/symbols/StateMachine.py UNKNOWN 
   src/mem/slicc/symbols/SymbolTable.py UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/358/diff
 
 
 Testing
 ---
 
 I have tested these changes using the MOESI_CMP_directory and MI protocols.
 
 
 Thanks,
 
 Nilay
 


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


Re: [m5-dev] Review Request: Ruby: Update MOESI CMP token protocol

2011-01-03 Thread Steve Reinhardt

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



src/mem/protocol/MOESI_CMP_token-L1cache.sm
http://reviews.m5sim.org/r/326/#comment825

These functions that take multiple pointers just so the called function can 
test which one is valid are pretty unwieldy and also seem to cause a lot of 
redundant testing.  Can we factor out the check so we have a single test to set 
one valid entry_ptr variable, then use that in all these calls?  I see there 
are some similar calls in MOESI_CMP_directory too, though not as many.


- Steve


On 2010-12-31 17:33:04, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/326/
 ---
 
 (Updated 2010-12-31 17:33:04)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This request for reviewing the updates to implementation of the MOESI CMP 
 token protocol. These updates have been carried out so as to conform with the 
 changes made to CacheMemory and TBETable classes, and to SLICC.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_CMP_token-L1cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_token-L2cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_token-dir.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/326/diff
 
 
 Testing
 ---
 
 Changes have been tested using ruby_random_test.py for 1,000,000 loads and 20 
 different seeds for random number generator.
 
 
 Thanks,
 
 Nilay
 


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


Re: [m5-dev] Review Request: Updating MOESI CMP Directory protocol as per the new interface

2011-01-03 Thread Steve Reinhardt

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



src/mem/protocol/MOESI_CMP_directory-L2cache.sm
http://reviews.m5sim.org/r/359/#comment824

As usual, please delete unused code instead of commenting it out.


- Steve


On 2010-12-31 17:35:16, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/359/
 ---
 
 (Updated 2010-12-31 17:35:16)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This is a request for reviewing the proposed changes to the MOESI CMP 
 directory cache coherence protocol to make it conform with the new cache 
 memory interface and changes to SLICC.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_CMP_directory-L1cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_directory-L2cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_directory-dir.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_directory-dma.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/359/diff
 
 
 Testing
 ---
 
 These changes have been tested using the Ruby random tester. The tester was 
 used with -l = 1048576 and -n = 2.
 
 
 Thanks,
 
 Nilay
 


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


Re: [m5-dev] Review Request: Ruby: Update MOESI CMP token protocol

2011-01-03 Thread Nilay Vaish


 On 2011-01-03 10:14:44, Steve Reinhardt wrote:
  src/mem/protocol/MOESI_CMP_token-L1cache.sm, line 972
  http://reviews.m5sim.org/r/326/diff/2/?file=8135#file8135line972
 
  These functions that take multiple pointers just so the called function 
  can test which one is valid are pretty unwieldy and also seem to cause a 
  lot of redundant testing.  Can we factor out the check so we have a single 
  test to set one valid entry_ptr variable, then use that in all these calls? 
   I see there are some similar calls in MOESI_CMP_directory too, though not 
  as many.

You should check my comment in the MOESI Hammer request why we cannot set just 
one valid entry pointer. I am of the view that we should generate the arguments 
for getCacheEntry() internally in SLICC.


- Nilay


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


On 2010-12-31 17:33:04, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/326/
 ---
 
 (Updated 2010-12-31 17:33:04)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This request for reviewing the updates to implementation of the MOESI CMP 
 token protocol. These updates have been carried out so as to conform with the 
 changes made to CacheMemory and TBETable classes, and to SLICC.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_CMP_token-L1cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_token-L2cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_token-dir.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/326/diff
 
 
 Testing
 ---
 
 Changes have been tested using ruby_random_test.py for 1,000,000 loads and 20 
 different seeds for random number generator.
 
 
 Thanks,
 
 Nilay
 


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


Re: [m5-dev] Review Request: Ruby: Update MOESI Hammer protocol

2011-01-03 Thread Steve Reinhardt

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



src/mem/protocol/MOESI_hammer-cache.sm
http://reviews.m5sim.org/r/280/#comment826

There's a red blotch in reviewboard that I think is saying you have 
trailing space on this line.



src/mem/protocol/MOESI_hammer-cache.sm
http://reviews.m5sim.org/r/280/#comment828

More functions where it would be nice to identify the one valid entry_ptr 
up front rather than passing all of the candidates in every time.  Maybe this 
could even be pushed all the way back up to the set_cache_entry calls?  I don't 
know enough about the protocols to know if that's feasible, but it sounds nice.


- Steve


On 2010-12-31 17:26:11, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/280/
 ---
 
 (Updated 2010-12-31 17:26:11)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This request is for reviewing the updates made to the MOESI Hammer protocol 
 so that it conforms with the new interfaces of CacheMemory and TBETable 
 classes, and the changes in SLICC.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_hammer-cache.sm UNKNOWN 
   src/mem/protocol/MOESI_hammer-dir.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/280/diff
 
 
 Testing
 ---
 
 The changes have been tested using ruby_random_test.py for a 1,000,000 loads 
 and 20 different seed values.
 
 
 Thanks,
 
 Nilay
 


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


[m5-dev] changeset in m5: Ruby: Add option for random seed to Ruby.py

2011-01-03 Thread Nilay Vaish
changeset 9d94b886c61b in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=9d94b886c61b
description:
Ruby: Add option for random seed to Ruby.py
This patch adds an option to the script Ruby.py for setting the 
parameter
m_random_seed used for randomizing delays in the memory system. The 
option
can be specified as --random_seed seed value.

diffstat:

 configs/ruby/Ruby.py |  6 +-
 1 files changed, 5 insertions(+), 1 deletions(-)

diffs (22 lines):

diff -r 2844d69d03e2 -r 9d94b886c61b configs/ruby/Ruby.py
--- a/configs/ruby/Ruby.py  Thu Dec 30 12:51:04 2010 -0500
+++ b/configs/ruby/Ruby.py  Mon Jan 03 12:40:31 2011 -0600
@@ -56,7 +56,10 @@
 
 parser.add_option(--recycle-latency, type=int, default=10,
   help=Recycle latency for ruby controller input buffers)
-
+
+parser.add_option(--random_seed, type=int, default=1234,
+  help=Used for seeding the random number generator)
+
 protocol = buildEnv['PROTOCOL']
 exec import %s % protocol
 eval(%s.define_options(parser) % protocol)
@@ -135,5 +138,6 @@
   mem_size = total_mem_size)
 
 ruby.cpu_ruby_ports = cpu_sequencers
+ruby.random_seed= options.random_seed
 
 return ruby
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: RefCount: Fix reference counting pointer == and...

2011-01-03 Thread Gabe Black
changeset 3a790012d6ed in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=3a790012d6ed
description:
RefCount: Fix reference counting pointer == and != with a T* on the 
left.

These operators were expecting a const T instead of a const T*, and 
were not
being picked up and used by gcc in the right places as a result. 
Apparently no
one used these operators before. A unit test which exposed these 
problems,
verified the solution, and checks other basic functionality is on the 
way.

diffstat:

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

diffs (21 lines):

diff -r 9d94b886c61b -r 3a790012d6ed src/base/refcnt.hh
--- a/src/base/refcnt.hhMon Jan 03 12:40:31 2011 -0600
+++ b/src/base/refcnt.hhMon Jan 03 15:31:20 2011 -0500
@@ -109,7 +109,7 @@
 { return l.get() == r; }
 
 templateclass T
-bool operator==(const T l, const RefCountingPtrT r)
+bool operator==(const T *l, const RefCountingPtrT r)
 { return l == r.get(); }
 
 templateclass T
@@ -121,7 +121,7 @@
 { return l.get() != r; }
 
 templateclass T
-bool operator!=(const T l, const RefCountingPtrT r)
+bool operator!=(const T *l, const RefCountingPtrT r)
 { return l != r.get(); }
 
 #endif // __BASE_REFCNT_HH__
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


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

2011-01-03 Thread Gabe Black

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

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: RefCount: Add a unit test for reference counting pointers.

2011-01-03 Thread Gabe Black

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

(Updated 2011-01-03 12:56:11.143277)


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 (updated)
-

  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: Updates MI cache coherence protocol

2011-01-03 Thread Nilay Vaish


 On 2011-01-03 10:16:00, Steve Reinhardt wrote:
  Though it was nice to split out the SLICC and protocol patches for 
  reviewing, I think these should be combined into a single changeset for 
  final commit.

I will commit all of these together.


- Nilay


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


On 2010-12-31 17:28:19, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/335/
 ---
 
 (Updated 2010-12-31 17:28:19)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This is a review request for the patch that updates the MI cache coherence 
 protocol to conform with the new
 interfaces of CacheMemory and TBETable classes, and the changes in SLICC.
 
 
 Diffs
 -
 
   src/mem/protocol/MI_example-cache.sm UNKNOWN 
   src/mem/protocol/MI_example-dir.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/335/diff
 
 
 Testing
 ---
 
 Tested using ruby_random_tester.py with l = 10,000,000 and n = 2.
 
 
 Thanks,
 
 Nilay
 


___
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-03 Thread Nilay Vaish

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

(Updated 2011-01-03 14:18:13.801375)


Review request for Default.


Changes
---

I have made the changes that Steve suggested for converting an expression in to 
a string.


Summary
---

The purpose of this patch is to change the way CacheMemory interfaces with 
coherence protocols. Currently, whenever a cache controller (defined in the 
protocol under consideration) needs to carry out any operation on a cache 
block, it looks up the tag hash map and figures out whether or not the block 
exists in the cache. In case it does exist, the operation is carried out (which 
requires another lookup). Over a single clock cycle, multiple such lookups take 
place as observed through profiling of different protocols. It was seen that 
the tag lookup takes anything from 10% to 20% of the simulation time. In order 
to reduce this time, this patch is being posted. The CacheMemory class now will 
have a function that will return pointer to a cache block entry, instead of a 
reference (though the function that returns the reference has been retained 
currently). Functions have been introduced for setting/unsetting a pointer and 
check its pointer. Similar changes have been carried out for Transaction Buffer 
entries as well.

Note that changes are required to both SLICC and the protocol files. This patch 
carries out changes to SLICC and committing this patch alone, I believe, will 
___break___ all the protocols. I am working on patching the protocols as well. 
This patch is being put to get feed back from other developers.


Diffs (updated)
-

  src/mem/protocol/RubySlicc_Types.sm UNKNOWN 
  src/mem/ruby/slicc_interface/AbstractCacheEntry.hh UNKNOWN 
  src/mem/ruby/slicc_interface/AbstractCacheEntry.cc UNKNOWN 
  src/mem/ruby/system/CacheMemory.hh UNKNOWN 
  src/mem/ruby/system/CacheMemory.cc UNKNOWN 
  src/mem/ruby/system/TBETable.hh UNKNOWN 
  src/mem/slicc/ast/ActionDeclAST.py UNKNOWN 
  src/mem/slicc/ast/FormalParamAST.py UNKNOWN 
  src/mem/slicc/ast/FuncCallExprAST.py UNKNOWN 
  src/mem/slicc/ast/InPortDeclAST.py UNKNOWN 
  src/mem/slicc/ast/MethodCallExprAST.py UNKNOWN 
  src/mem/slicc/ast/TypeDeclAST.py UNKNOWN 
  src/mem/slicc/ast/__init__.py UNKNOWN 
  src/mem/slicc/parser.py UNKNOWN 
  src/mem/slicc/symbols/StateMachine.py UNKNOWN 

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


Testing
---

I have tested these changes using the MOESI_CMP_directory and MI protocols.


Thanks,

Nilay

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


Re: [m5-dev] Review Request: Updating MOESI CMP Directory protocol as per the new interface

2011-01-03 Thread Nilay Vaish

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

(Updated 2011-01-03 14:20:22.706038)


Review request for Default.


Changes
---

Removed the code that was commented out in the previous revision.


Summary
---

This is a request for reviewing the proposed changes to the MOESI CMP directory 
cache coherence protocol to make it conform with the new cache memory interface 
and changes to SLICC.


Diffs (updated)
-

  src/mem/protocol/MOESI_CMP_directory-L1cache.sm UNKNOWN 
  src/mem/protocol/MOESI_CMP_directory-L2cache.sm UNKNOWN 
  src/mem/protocol/MOESI_CMP_directory-dir.sm UNKNOWN 
  src/mem/protocol/MOESI_CMP_directory-dma.sm UNKNOWN 

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


Testing
---

These changes have been tested using the Ruby random tester. The tester was 
used with -l = 1048576 and -n = 2.


Thanks,

Nilay

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


[m5-dev] changeset in m5: Make commenting on close namespace brackets con...

2011-01-03 Thread Steve Reinhardt
changeset a8fc35183c10 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=a8fc35183c10
description:
Make commenting on close namespace brackets consistent.

Ran all the source files through 'perl -pi' with this script:

s|\s*(};?\s*)?/\*\s*(end\s*)?namespace\s*(\S+)\s*\*/(\s*})?|} // 
namespace $3|;
s|\s*};?\s*//\s*(end\s*)?namespace\s*(\S+)\s*|} // namespace $2\n|;
s|\s*};?\s*//\s*(\S+)\s*namespace\s*|} // namespace $1\n|;

Also did a little manual editing on some of the arch/*/isa_traits.hh 
files
and src/SConscript.

diffstat:

 src/SConscript  |  4 ++--
 src/arch/alpha/mt.hh|  2 +-
 src/arch/alpha/pagetable.cc |  2 +-
 src/arch/alpha/tlb.cc   |  2 +-
 src/arch/arm/faults.hh  |  2 +-
 src/arch/arm/isa_traits.hh  |  4 ++--
 src/arch/arm/kernel_stats.hh|  4 ++--
 src/arch/arm/nativetrace.cc |  2 +-
 src/arch/arm/nativetrace.hh |  2 +-
 src/arch/arm/tlb.hh |  2 +-
 src/arch/mips/dsp.hh|  2 +-
 src/arch/mips/faults.hh |  2 +-
 src/arch/mips/isa_traits.hh |  4 ++--
 src/arch/mips/kernel_stats.hh   |  4 ++--
 src/arch/mips/linux/threadinfo.hh   |  2 +-
 src/arch/power/faults.hh|  2 +-
 src/arch/power/insts/branch.hh  |  2 +-
 src/arch/power/insts/condition.hh   |  2 +-
 src/arch/power/insts/floating.hh|  2 +-
 src/arch/power/insts/integer.hh |  2 +-
 src/arch/power/insts/mem.hh |  2 +-
 src/arch/power/insts/misc.hh|  2 +-
 src/arch/power/insts/static_inst.hh |  2 +-
 src/arch/power/isa.hh   |  2 +-
 src/arch/power/isa_traits.hh|  4 ++--
 src/arch/power/locked_mem.hh|  2 +-
 src/arch/power/microcode_rom.hh |  2 +-
 src/arch/power/miscregs.hh  |  2 +-
 src/arch/power/mmaped_ipr.hh|  2 +-
 src/arch/power/pagetable.cc |  2 +-
 src/arch/power/pagetable.hh |  2 +-
 src/arch/power/predecoder.hh|  2 +-
 src/arch/power/registers.hh |  2 +-
 src/arch/power/remote_gdb.hh|  2 +-
 src/arch/power/stacktrace.hh|  2 +-
 src/arch/power/tlb.hh   |  2 +-
 src/arch/power/types.hh |  2 +-
 src/arch/power/utility.cc   |  2 +-
 src/arch/power/utility.hh   |  2 +-
 src/arch/power/vtophys.hh   |  2 +-
 src/arch/sparc/faults.hh|  2 +-
 src/arch/sparc/kernel_stats.hh  |  4 ++--
 src/arch/sparc/nativetrace.cc   |  2 +-
 src/arch/sparc/nativetrace.hh   |  2 +-
 src/arch/sparc/tlb.cc   |  2 +-
 src/arch/sparc/vtophys.cc   |  2 +-
 src/arch/x86/cpuid.cc   |  2 +-
 src/arch/x86/nativetrace.cc |  2 +-
 src/arch/x86/nativetrace.hh |  2 +-
 src/arch/x86/registers.hh   |  2 +-
 src/arch/x86/tlb.cc |  2 +-
 src/arch/x86/utility.cc |  2 +-
 src/base/cprintf.cc |  2 +-
 src/base/cprintf.hh |  2 +-
 src/base/hashmap.hh |  2 +-
 src/base/inet.cc|  2 +-
 src/base/inet.hh|  2 +-
 src/base/mysql.cc   |  2 +-
 src/base/mysql.hh   |  2 +-
 src/base/statistics.cc  |  2 +-
 src/base/statistics.hh  |  2 +-
 src/base/stats/info.hh  |  2 +-
 src/base/stats/mysql.cc |  2 +-
 src/base/stats/mysql.hh |  2 +-
 src/base/stats/mysql_run.hh |  2 +-
 src/base/stats/output.cc|  2 +-
 src/base/stats/output.hh|  2 +-
 src/base/stats/text.cc  |  2 +-
 src/base/stats/text.hh  |  2 +-
 src/base/stats/types.hh |  2 +-
 src/base/stats/visit.cc |  2 +-
 src/base/stats/visit.hh |  2 +-
 src/base/stl_helpers.hh |  4 ++--
 src/base/trace.cc   |  2 +-
 src/base/trace.hh   |  2 +-
 src/base/varargs.hh |  2 +-
 src/cpu/exetrace.cc |  2 +-
 src/cpu/exetrace.hh |  2 +-
 src/cpu/inorder/inorder_trace.cc|  2 +-
 src/cpu/inorder/inorder_trace.hh|  2 +-
 src/cpu/inteltrace.cc   |  2 +-
 src/cpu/inteltrace.hh   |  2 +-
 src/cpu/legiontrace.cc  |  2 +-
 src/cpu/legiontrace.hh  |  2 +-
 src/cpu/nativetrace.cc  |  2 +-
 src/cpu/nativetrace.hh  |  2 +-
 src/dev/copy_engine_defs.hh |  2 +-
 src/dev/i8254xGBe_defs.hh   |  2 +-
 src/dev/sinic.cc|  2 +-
 src/dev/sinic.hh|  2 +-
 src/dev/sinicreg.hh |  4 ++--
 src/dev/x86/cmos.hh |  2 +-
 src/dev/x86/i8042.hh|  2 +-
 src/dev/x86/i82094aa.hh |  2 +-
 src/dev/x86/i8237.hh|  2 +-
 src/dev/x86/i8254.hh|  2 +-
 src/dev/x86/i8259.hh|  2 +-
 

[m5-dev] changeset in m5: Delete unused files from src/base directory.

2011-01-03 Thread Steve Reinhardt
changeset 850d71d21135 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=850d71d21135
description:
Delete unused files from src/base directory.

diffstat:

 src/base/SConscript  |6 -
 src/base/compression/base.hh |   71 --
 src/base/compression/lzss_compression.cc |  173 ---
 src/base/compression/lzss_compression.hh |  103 
 src/base/compression/null_compression.hh |   63 --
 src/base/crc.cc  |  105 
 src/base/crc.hh  |   39 -
 src/base/fifo_buffer.cc  |   43 -
 src/base/fifo_buffer.hh  |   89 ---
 src/base/hybrid_pred.cc  |  276 ---
 src/base/hybrid_pred.hh  |  204 
 src/base/predictor.hh|   63 --
 src/base/res_list.hh |  759 ---
 src/base/sat_counter.cc  |  271 ---
 src/base/sat_counter.hh  |  195 ---
 15 files changed, 0 insertions(+), 2460 deletions(-)

diffs (truncated from 2545 to 300 lines):

diff -r a8fc35183c10 -r 850d71d21135 src/base/SConscript
--- a/src/base/SConscript   Mon Jan 03 14:35:43 2011 -0800
+++ b/src/base/SConscript   Mon Jan 03 14:35:45 2011 -0800
@@ -38,14 +38,11 @@
 Source('callback.cc')
 Source('circlebuf.cc')
 Source('cprintf.cc')
-Source('crc.cc')
 Source('debug.cc')
 Source('fast_alloc.cc')
 if env['USE_FENV']:
 Source('fenv.c')
-Source('fifo_buffer.cc')
 Source('hostinfo.cc')
-Source('hybrid_pred.cc')
 Source('inet.cc')
 Source('inifile.cc')
 Source('intmath.cc')
@@ -58,7 +55,6 @@
 Source('range.cc')
 if env['TARGET_ISA'] != 'no':
 Source('remote_gdb.cc')
-Source('sat_counter.cc')
 Source('socket.cc')
 Source('statistics.cc')
 Source('str.cc')
@@ -66,8 +62,6 @@
 Source('trace.cc')
 Source('userinfo.cc')
 
-Source('compression/lzss_compression.cc')
-
 Source('loader/aout_object.cc')
 Source('loader/ecoff_object.cc')
 Source('loader/elf_object.cc')
diff -r a8fc35183c10 -r 850d71d21135 src/base/compression/base.hh
--- a/src/base/compression/base.hh  Mon Jan 03 14:35:43 2011 -0800
+++ /dev/null   Thu Jan 01 00:00:00 1970 +
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Erik Hallnor
- *  Nathan Binkert
- */
-
-#ifndef __BASE_COMPRESSION_BASE_HH__
-#define __BASE_COMPRESSION_BASE_HH__
-
-/**
- * @file
- * This file defines a base (abstract virtual) compression algorithm object.
- */
-
-#include base/types.hh
-
-/**
- * Abstract virtual compression algorithm object.
- */
-class CompressionAlgorithm
-{
-  public:
-virtual ~CompressionAlgorithm() {}
-
-/**
- * Uncompress the data, causes a fatal since no data should be compressed.
- * @param dest The output buffer.
- * @param src  The compressed data.
- * @param size The number of bytes in src.
- *
- * @retval The size of the uncompressed data.
- */
-virtual int uncompress(uint8_t * dest, uint8_t *src, int size) = 0;
-
-/**
- * Compress the data, just returns the source data.
- * @param dest The output buffer.
- * @param src  The data to be compressed.
- * @param size The number of bytes in src.
- *
- * @retval The size of the compressed data.
- */
-virtual int compress(uint8_t *dest, uint8_t *src, int size) = 0;
-};
-
-#endif //__BASE_COMPRESSION_BASE_HH__

[m5-dev] changeset in m5: Move sched_list.hh and timebuf.hh from src/base...

2011-01-03 Thread Steve Reinhardt
changeset 7338bc628489 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=7338bc628489
description:
Move sched_list.hh and timebuf.hh from src/base to src/cpu.
These files really aren't general enough to belong in src/base.
This patch doesn't reorder include lines, leaving them unsorted
in many cases, but Nate's magic script will fix that up shortly.

diffstat:

 src/base/sched_list.hh|  180 
 src/base/timebuf.hh   |  241 --
 src/cpu/activity.cc   |2 +-
 src/cpu/activity.hh   |2 +-
 src/cpu/inorder/cpu.hh|2 +-
 src/cpu/inorder/first_stage.hh|2 +-
 src/cpu/inorder/pipeline_stage.hh |2 +-
 src/cpu/o3/commit.hh  |2 +-
 src/cpu/o3/commit_impl.hh |2 +-
 src/cpu/o3/cpu.hh |2 +-
 src/cpu/o3/decode.hh  |2 +-
 src/cpu/o3/fetch.hh   |2 +-
 src/cpu/o3/fu_pool.hh |2 +-
 src/cpu/o3/iew.hh |2 +-
 src/cpu/o3/iew_impl.hh|2 +-
 src/cpu/o3/inst_queue.hh  |2 +-
 src/cpu/o3/rename.hh  |2 +-
 src/cpu/ozone/back_end.hh |2 +-
 src/cpu/ozone/cpu.hh  |2 +-
 src/cpu/ozone/front_end.hh|2 +-
 src/cpu/ozone/inorder_back_end.hh |2 +-
 src/cpu/ozone/inst_queue.hh   |2 +-
 src/cpu/ozone/lw_back_end.hh  |2 +-
 src/cpu/sched_list.hh |  180 
 src/cpu/timebuf.hh|  241 ++
 25 files changed, 442 insertions(+), 442 deletions(-)

diffs (truncated from 1110 to 300 lines):

diff -r 850d71d21135 -r 7338bc628489 src/base/sched_list.hh
--- a/src/base/sched_list.hhMon Jan 03 14:35:45 2011 -0800
+++ /dev/null   Thu Jan 01 00:00:00 1970 +
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 2002-2005 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Steve Raasch
- */
-
-#ifndef SCHED_LIST_HH
-#define SCHED_LIST_HH
-
-#include list
-#include base/intmath.hh
-#include base/misc.hh
-
-
-//  Any types you use this class for must be covered here...
-namespace {
-void ClearEntry(int i) { i = 0; };
-void ClearEntry(unsigned i) { i = 0; };
-void ClearEntry(double i) { i = 0; };
-template class T void ClearEntry(std::listT l) { l.clear(); };
-};
-
-
-//
-//  this is a special list type that allows the user to insert elements at a
-//  specified positive offset from the current element, but only allow them
-//  be extracted from the current element
-//
-
-
-template class T
-class SchedList
-{
-T *data_array;
-unsigned position;
-unsigned size;
-unsigned mask;
-
-  public:
-SchedList(unsigned size);
-SchedList(void);
-
-void init(unsigned size);
-
-T operator[](unsigned offset);
-
-void advance(void);
-
-void clear(void);
-};
-
-
-
-//
-//  Constructor
-//
-templateclass T
-SchedListT::SchedList(unsigned _size)
-{
-size = _size;
-
-//  size must be a power of two
-if (!isPowerOf2(size)) {
-panic(SchedList: size must be a power of two);
-}
-
-if (size  2) {
-panic(SchedList: you don't want a list that small);
-}
-
-//  calculate the bit mask for the modulo operation
-mask = size - 1;
-
-data_array = new T[size];
-
-if (!data_array) {
-

Re: [m5-dev] Review Request: Ruby: Update MOESI CMP token protocol

2011-01-03 Thread Nilay Vaish


 On 2011-01-03 10:14:44, Steve Reinhardt wrote:
  src/mem/protocol/MOESI_CMP_token-L1cache.sm, line 972
  http://reviews.m5sim.org/r/326/diff/2/?file=8135#file8135line972
 
  These functions that take multiple pointers just so the called function 
  can test which one is valid are pretty unwieldy and also seem to cause a 
  lot of redundant testing.  Can we factor out the check so we have a single 
  test to set one valid entry_ptr variable, then use that in all these calls? 
   I see there are some similar calls in MOESI_CMP_directory too, though not 
  as many.
 
 Nilay Vaish wrote:
 You should check my comment in the MOESI Hammer request why we cannot set 
 just one valid entry pointer. I am of the view that we should generate the 
 arguments for getCacheEntry() internally in SLICC.
 
 Steve Reinhardt wrote:
 I understand that you can't universally assume that there's just one 
 valid pointer... I'm not asking to go all the way back to that.  But it 
 appears to me that there are a lot of places (regions of code) where you know 
 that only one of N pointers is valid, yet you have to repeatedly pass all N 
 pointers to each low-level function to figure out which one to use.  It would 
 be both more efficient and easier to read if, in those regions, there was one 
 function up front that identified and selected the one valid pointer (maybe 
 sticking it in a local variable), then the low-level functions were all 
 passed that one valid pointer.  Auto-generating params in SLICC would solve 
 the readability problem but not the efficiency problem.

This is possible with a local variable. In fact I was thinking of letting SLICC 
generate such a local variable in each action. But then I decided I would let 
this issue be taken up during the review process.
I can make this change. The problem is I am not sure if the currently proposed 
changes would be acceptable to some one (read Brad) who has used SLICC 
extensively.


- Nilay


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


On 2010-12-31 17:33:04, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/326/
 ---
 
 (Updated 2010-12-31 17:33:04)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 This request for reviewing the updates to implementation of the MOESI CMP 
 token protocol. These updates have been carried out so as to conform with the 
 changes made to CacheMemory and TBETable classes, and to SLICC.
 
 
 Diffs
 -
 
   src/mem/protocol/MOESI_CMP_token-L1cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_token-L2cache.sm UNKNOWN 
   src/mem/protocol/MOESI_CMP_token-dir.sm UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/326/diff
 
 
 Testing
 ---
 
 Changes have been tested using ruby_random_test.py for 1,000,000 loads and 20 
 different seeds for random number generator.
 
 
 Thanks,
 
 Nilay
 


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


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

2011-01-03 Thread Steve Reinhardt

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

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 

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


Testing
---

quick regressions pass


Thanks,

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-03 Thread Brad Beckmann

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


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



- Brad


On 2011-01-03 14:18:13, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/358/
 ---
 
 (Updated 2011-01-03 14:18:13)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 The purpose of this patch is to change the way CacheMemory interfaces with 
 coherence protocols. Currently, whenever a cache controller (defined in the 
 protocol under consideration) needs to carry out any operation on a cache 
 block, it looks up the tag hash map and figures out whether or not the block 
 exists in the cache. In case it does exist, the operation is carried out 
 (which requires another lookup). Over a single clock cycle, multiple such 
 lookups take place as observed through profiling of different protocols. It 
 was seen that the tag lookup takes anything from 10% to 20% of the simulation 
 time. In order to reduce this time, this patch is being posted. The 
 CacheMemory class now will have a function that will return pointer to a 
 cache block entry, instead of a reference (though the function that returns 
 the reference has been retained currently). Functions have been introduced 
 for setting/unsetting a pointer and check its pointer. Similar changes have 
 been carried out for Transaction Buffer entries as well.
 
 Note that changes are required to both SLICC and the protocol files. This 
 patch carries out changes to SLICC and committing this patch alone, I 
 believe, will ___break___ all the protocols. I am working on patching the 
 protocols as well. This patch is being put to get feed back from other 
 developers.
 
 
 Diffs
 -
 
   src/mem/protocol/RubySlicc_Types.sm UNKNOWN 
   src/mem/ruby/slicc_interface/AbstractCacheEntry.hh UNKNOWN 
   src/mem/ruby/slicc_interface/AbstractCacheEntry.cc UNKNOWN 
   src/mem/ruby/system/CacheMemory.hh UNKNOWN 
   src/mem/ruby/system/CacheMemory.cc UNKNOWN 
   src/mem/ruby/system/TBETable.hh UNKNOWN 
   src/mem/slicc/ast/ActionDeclAST.py UNKNOWN 
   src/mem/slicc/ast/FormalParamAST.py UNKNOWN 
   src/mem/slicc/ast/FuncCallExprAST.py UNKNOWN 
   src/mem/slicc/ast/InPortDeclAST.py UNKNOWN 
   src/mem/slicc/ast/MethodCallExprAST.py UNKNOWN 
   src/mem/slicc/ast/TypeDeclAST.py UNKNOWN 
   src/mem/slicc/ast/__init__.py UNKNOWN 
   src/mem/slicc/parser.py UNKNOWN 
   src/mem/slicc/symbols/StateMachine.py UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/358/diff
 
 
 Testing
 ---
 
 I have tested these 

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

2011-01-03 Thread Gabe Black
I like the original (Ali's version) better. When was it confusing?
Perhaps there's a particular action that would be better the other way
around. Maybe we should have graduated levels of verbosity for this
stuff where, for example,  0 is Ali's version, 1 is this version, and 2
is the full command.

Gabe

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


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


   Description

 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
   


   Testing

 quick regressions pass


   Diffs

 * SConstruct (7338bc628489)
 * src/SConscript (7338bc628489)
 * src/arch/SConscript (7338bc628489)
 * src/arch/isa_parser.py (7338bc628489)

 View Diff http://reviews.m5sim.org/r/366/diff/

 

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

___
m5-dev mailing list

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

2011-01-03 Thread Steve Reinhardt

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

(Updated 2011-01-03 16:10:27.987336)


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 (updated)
-

  SConstruct 7338bc628489 
  src/SConscript 7338bc628489 
  src/arch/SConscript 7338bc628489 
  src/arch/isa_parser.py 7338bc628489 

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


Testing
---

quick regressions pass


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-03 Thread Steve Reinhardt
I think this is the first time I've updated an existing diff via
reviewboard, and I thought it would give me a chance to enter some comments
on the website before publishing it like a new diff, but it didn't. so here
are the comments that go with this diff:

I had originally been more aggressive about common prefix extraction, but
there were some glitches that made me go with the path-based approach...
however, in the process of uploading this diff I thought of some fixes.  So
consider this second diff as an alternative and not necessarily a
replacement.  Example output for the new diff, corresponding to the previous
example selection:

 [ CXX] ALPHA_SE/sim/main: .cc - .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 - .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 - .do
 [SWIG] ALPHA_SE/python/swig/core: .i - _wrap.cc, .py
 [ CXX] ALPHA_SE/python/swig/core_wrap: .cc - .do
 [SWIG] ALPHA_SE/python/swig/debug: .i - _wrap.cc, .py
 [ CXX] ALPHA_SE/python/swig/debug_wrap: .cc - .do
...
 [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 - .do
 [ CXX] ALPHA_SE/base/socket: .cc - .do
...
 [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 - _wrap.cc, .py
 [ CXX] ALPHA_SE/python/m5/internal/vptype_Process_wrap: .cc - .do
 [SW PARAM] AddrRange - ALPHA_SE/python/m5/internal/vptype_AddrRange.i
 [SWIG] ALPHA_SE/python/m5/internal/vptype_AddrRange: .i - _wrap.cc,
.py
 [ CXX] ALPHA_SE/python/m5/internal/vptype_AddrRange_wrap: .cc - .do
...
 [EMBED PY] ALPHA_SE/python/m5/internal/param_BaseSimpleCPU.py:  - .cc
 [ CXX] ALPHA_SE/python/m5/internal/param_BaseSimpleCPU.py: .cc - .do
 [EMBED PY] ALPHA_SE/python/m5/internal/param_LiveProcess.py:  - .cc
 [ CXX] ALPHA_SE/python/m5/internal/param_LiveProcess.py: .cc - .do
 [ TRACING]  - ALPHA_SE/base/traceflags.py
 [EMBED PY] ALPHA_SE/base/traceflags.py:  - .cc
 [ CXX] ALPHA_SE/base/traceflags.py: .cc - .do
 [ CXX] ALPHA_SE/base/date: .cc - .do
 [LINK]  - ALPHA_SE/m5.debug
___
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-03 Thread Steve Reinhardt
I don't recall all the details about what got me going on this, but I think
a couple of the specific things I didn't like were (1) if you compile
multiple binaries at the same time (e.g., m5.debug and m5.opt) the CXX lines
print the source file which doesn't give you enough information to know
which one is compiling and (2) for swig, it prints the foo_wrap.cc target
file name, which takes some (admittedly little) inside knowledge to map back
to the foo.i file if you care, and doesn't mention the generated .py file.

Anyway, it was just enough annoyance to lead me to think that the problem
was inconsistently printing the source sometimes and the target other
times... one simple solution would be just to consistently print one or the
other, but since it's not obvious which one is more useful, I thought why
not print both.  And here I am.

I think this version would be helpful in addressing the
newbies-don't-know-where-generated-files-come-from problem too, if they just
bother to look at the output while it builds.

What don't you like about these newer versions?  Just that they're more
verbose?

Steve

On Mon, Jan 3, 2011 at 3:45 PM, Gabe Black gbl...@eecs.umich.edu wrote:

 I like the original (Ali's version) better. When was it confusing?
 Perhaps there's a particular action that would be better the other way
 around. Maybe we should have graduated levels of verbosity for this
 stuff where, for example,  0 is Ali's version, 1 is this version, and 2
 is the full command.

 Gabe

 Steve Reinhardt wrote:
  This is an automatically generated e-mail. To reply, visit:
  http://reviews.m5sim.org/r/366/
 
 
  Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt,
  and Nathan Binkert.
  By Steve Reinhardt.
 
 
Description
 
  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: 

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

2011-01-03 Thread Gabe Black
Yeah, primarily. In this new version there's enough text that it gets
hard to pick out the nugget that lets you know what it's doing. We have
some way to turn on the command lines again, don't we? I don't really
remember off hand. Granted when things are compiling I usually just
ignore it and check it every now and then to see if it finished or
failed, but it was nice that it was relatively clean and sparse and
would give you a quick idea of what it was chewing on.

I also think every time we say if they just X we're forgetting that
many people won't know or think to just X, so we shouldn't bend things
around too far to accommodate that (not saying that's the case here, but
still). For instance, Ali's links after warns, panics, etc. are a pretty
good idea if people were to just follow them and put some info there,
but I'd be willing to bet very few or even none of those links actually
has anything.

And actually speaking of which, we might want to get rid of those links.

Gabe

Steve Reinhardt wrote:
 I don't recall all the details about what got me going on this, but I
 think a couple of the specific things I didn't like were (1) if you
 compile multiple binaries at the same time (e.g., m5.debug and m5.opt)
 the CXX lines print the source file which doesn't give you enough
 information to know which one is compiling and (2) for swig, it prints
 the foo_wrap.cc target file name, which takes some (admittedly little)
 inside knowledge to map back to the foo.i file if you care, and
 doesn't mention the generated .py file. 

 Anyway, it was just enough annoyance to lead me to think that the
 problem was inconsistently printing the source sometimes and the
 target other times... one simple solution would be just to
 consistently print one or the other, but since it's not obvious which
 one is more useful, I thought why not print both.  And here I am.

 I think this version would be helpful in addressing the
 newbies-don't-know-where-generated-files-come-from problem too, if
 they just bother to look at the output while it builds.

 What don't you like about these newer versions?  Just that they're
 more verbose?

 Steve

 On Mon, Jan 3, 2011 at 3:45 PM, Gabe Black gbl...@eecs.umich.edu
 mailto:gbl...@eecs.umich.edu wrote:

 I like the original (Ali's version) better. When was it confusing?
 Perhaps there's a particular action that would be better the other way
 around. Maybe we should have graduated levels of verbosity for this
 stuff where, for example,  0 is Ali's version, 1 is this version,
 and 2
 is the full command.

 Gabe

 Steve Reinhardt wrote:
  This is an automatically generated e-mail. To reply, visit:
  http://reviews.m5sim.org/r/366/
 
 
  Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt,
  and Nathan Binkert.
  By Steve Reinhardt.
 
 
Description
 
  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

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

2011-01-03 Thread nathan binkert
 I had originally been more aggressive about common prefix extraction, but
 there were some glitches that made me go with the path-based approach...
 however, in the process of uploading this diff I thought of some fixes.  So
 consider this second diff as an alternative and not necessarily a
 replacement.  Example output for the new diff, corresponding to the previous
 example selection:
I love this and I've been wanting it for a while for your reason #1,
also, there are some ambiguous things where the same file is printed
because one is a TARGET and another thing uses a SOURCE (that always
bothered me.)

  [ CXX] ALPHA_SE/sim/main: .cc - .do
My only change would be to remove the colon space.  It serves little
purpose and makes cut-and-paste less useful.

[ CXX] ALPHA_SE/sim/main.cc - .do

  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-03 Thread Ali Saidi

On Jan 3, 2011, at 10:21 PM, nathan binkert wrote:

 I had originally been more aggressive about common prefix extraction, but
 there were some glitches that made me go with the path-based approach...
 however, in the process of uploading this diff I thought of some fixes.  So
 consider this second diff as an alternative and not necessarily a
 replacement.  Example output for the new diff, corresponding to the previous
 example selection:
 I love this and I've been wanting it for a while for your reason #1,
 also, there are some ambiguous things where the same file is printed
 because one is a TARGET and another thing uses a SOURCE (that always
 bothered me.)
 
  [ CXX] ALPHA_SE/sim/main: .cc - .do
 My only change would be to remove the colon space.  It serves little
 purpose and makes cut-and-paste less useful.
 
 [ CXX] ALPHA_SE/sim/main.cc - .do
I'm ok with it, but I still think the cases where there is a problem are few 
are far between. Anyone who really has a problem should turn on the verbose 
printing.

Ali

___
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-03 Thread Nathan Binkert

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

Ship it!


I have some suggestions, but overall, it looks good.  It would be nice to at 
least have the return value of the test indicate success or failure as it would 
be nice to actually include these in the regressions in the future.  Thanks!


src/unittest/refcnttest.cc
http://reviews.m5sim.org/r/365/#comment832

This diff looks overall correct, though the use of assert to do this is a 
bit odd.  Perhaps replace assert with something more like (though it might not 
be very meaningful without a description of what you're testing to go with it):

#define test(X) do {
bool test = (X);
cprintf(%-7s (line %3d) %s\n, test ? SUCCESS : FAIL, __LINE__, #X);
if (!test) {
Debug::break();
failures++;
}
} while (0)

at the exit of main(), i'd print total failures and also do return 
!!failures  !!x is equivalent to x ? 1 : 0 or int(bool(x)), if you don't 
like the shorthand.


- Nathan


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: scons: show sources and targets when building.

2011-01-03 Thread nathan binkert
 I love this and I've been wanting it for a while for your reason #1,
 also, there are some ambiguous things where the same file is printed
 because one is a TARGET and another thing uses a SOURCE (that always
 bothered me.)

  [     CXX] ALPHA_SE/sim/main: .cc - .do
 My only change would be to remove the colon space.  It serves little
 purpose and makes cut-and-paste less useful.

 [     CXX] ALPHA_SE/sim/main.cc - .do
 I'm ok with it, but I still think the cases where there is a problem are few 
 are far between. Anyone who really has a problem should turn on the verbose 
 printing.

I frequently compile many different versions of the source, and I like
to know if it's working on the .do or the .fo (so I can get an idea of
how far things are along.)  If Gabe and Ali don't like this, we could
go so far as to do Gabe's idea of VERBOSE=1 or VERBOSE=2, though that
seems like overkill to me.  I personally really do like this diff and
would hate to see it go.

  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-03 Thread Steve Reinhardt
On Mon, Jan 3, 2011 at 8:38 PM, nathan binkert n...@binkert.org wrote:

  I love this and I've been wanting it for a while for your reason #1,
  also, there are some ambiguous things where the same file is printed
  because one is a TARGET and another thing uses a SOURCE (that always
  bothered me.)


Glad it's not just me :-).


   [ CXX] ALPHA_SE/sim/main: .cc - .do
  My only change would be to remove the colon space.  It serves little
  purpose and makes cut-and-paste less useful.
 
  [ CXX] ALPHA_SE/sim/main.cc - .do


That's a decent idea... I didn't do it that way because it makes it
potentially ambiguous about where the new extension gets spliced in, but in
practice that's got to be rare, and having at least one file name you can
cut and paste is a win (that's one thing I wasn't thrilled with about either
of my patches).


  I'm ok with it, but I still think the cases where there is a problem are
 few are far between. Anyone who really has a problem should turn on the
 verbose printing.


There's a huge difference in verbosity and readability between this and
verbose... if Ali's patch was 0 and this is a 1, the old verbose is like
18.  Not to mention that this makes it clear what the sources and targets
are, which is hard to do when switching around between different command
lines for different tools.



 I frequently compile many different versions of the source, and I like
 to know if it's working on the .do or the .fo (so I can get an idea of
 how far things are along.)  If Gabe and Ali don't like this, we could
 go so far as to do Gabe's idea of VERBOSE=1 or VERBOSE=2, though that
 seems like overkill to me.  I personally really do like this diff and
 would hate to see it go.


With Nate's suggested change, for CXX lines we're really just tacking on the
' - .o' at the end... the initial part of the line is unchanged, and the
number of extra chars per line is 6 or 7.  If you guys really insist, it
probably wouldn't be too hard to make this controlled by an option, but I
agree that it seems like overkill.

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-03 Thread Ali Saidi

On Jan 3, 2011, at 10:57 PM, Steve Reinhardt wrote:
 
 
 With Nate's suggested change, for CXX lines we're really just tacking on the 
 ' - .o' at the end... the initial part of the line is unchanged, and the 
 number of extra chars per line is 6 or 7.  If you guys really insist, it 
 probably wouldn't be too hard to make this controlled by an option, but I 
 agree that it seems like overkill.

I'm fine with the change.

Ali


___
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-03 Thread Steve Reinhardt
On Mon, Jan 3, 2011 at 8:57 PM, Steve Reinhardt ste...@gmail.com wrote:


   [ CXX] ALPHA_SE/sim/main: .cc - .do
  My only change would be to remove the colon space.  It serves little
  purpose and makes cut-and-paste less useful.
 
  [ CXX] ALPHA_SE/sim/main.cc - .do


 That's a decent idea... I didn't do it that way because it makes it
 potentially ambiguous about where the new extension gets spliced in, but in
 practice that's got to be rare, and having at least one file name you can
 cut and paste is a win (that's one thing I wasn't thrilled with about either
 of my patches).


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.

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-03 Thread Gabe Black
Ali Saidi wrote:

 On Jan 3, 2011, at 10:57 PM, Steve Reinhardt wrote:



 With Nate's suggested change, for CXX lines we're really just tacking
 on the ' - .o' at the end... the initial part of the line is
 unchanged, and the number of extra chars per line is 6 or 7.  If you
 guys really insist, it probably wouldn't be too hard to make this
 controlled by an option, but I agree that it seems like overkill.

 I'm fine with the change.

 Ali

Yeah, I'm probably ok with it too. I like the old version a bit better,
but it's not a big deal if you guys really like the new way.

Gabe
___
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-03 Thread nathan binkert
 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?)

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