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

2011-03-01 Thread Cron Daemon
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/inorder-timing 
passed.
* 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/00.hello/alpha/linux/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/tru64/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/01.hello-2T-smt/alpha/linux/o3-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-atomic 
passed.
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-atomic-mp 
passed.
* build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-timing-mp 
passed.
* build/ALPHA_SE/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby 
passed.
* build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest 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/00.hello/alpha/tru64/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_MOESI_hammer/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer
 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/00.hello/alpha/tru64/simple-timing-ruby-MESI_CMP_directory
 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/50.memtest/alpha/linux/memtest-ruby-MESI_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/00.hello/alpha/tru64/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_directory/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory
 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_SE_MOESI_CMP_token/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token
 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-atomic-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-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/inorder-timing 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 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-ruby 
passed.
* build/POWER_SE/tests/fast/quick/00.hello/power/linux/o3-timing passed.
* build/POWER_SE/tests/fast/quick/00.hello/power/linux/simple-atomic passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing-ruby 
passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/o3-timing passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-atomic passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-atomic 
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/o3-timing-mp
 passed.
* 

Re: [m5-dev] Review Request: SCons: Clean up some inconsistent capitalization in scons options.

2011-03-01 Thread Gabe Black
I don't think so. update_refs/UPDATE_REFS is used to replace the
expected regression outputs, so that shouldn't have any impact on
actually running the regressions. If that's not right somebody please
speak up.

Gabe

On 02/28/11 18:32, nathan binkert wrote:
 Do the regression scripts need to be fixed?

 On Mon, Feb 28, 2011 at 11:59 AM, Ali Saidi sa...@umich.edu
 mailto:sa...@umich.edu wrote:

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


 Ship it!

 Looks fine. Two things though: 1) The documentation on the wiki needs to 
 be updated along with this change. 2) I would like a separate email sent to 
 the list saying that update_refs - UPDATE_REFS. 


 - Ali


 On February 28th, 2011, 4:54 a.m., Gabe Black wrote:

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

 /Updated 2011-02-28 04:54:41/


   Description

 SCons: Clean up some inconsistent capitalization in scons options.


   Diffs

 * SConstruct (c6ba129c2764)
 * src/mem/protocol/SConsopts (c6ba129c2764)
 * tests/SConscript (c6ba129c2764)

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



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


[m5-dev] changeset in m5: Ruby: Mention that Ruby's bound checking option...

2011-03-01 Thread Gabe Black
changeset 265202bbac87 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=265202bbac87
description:
Ruby: Mention that Ruby's bound checking option only applies to Ruby.

diffstat:

 src/mem/ruby/SConsopts |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r 59a19310ca65 -r 265202bbac87 src/mem/ruby/SConsopts
--- a/src/mem/ruby/SConsoptsSun Feb 27 16:25:06 2011 -0800
+++ b/src/mem/ruby/SConsoptsTue Mar 01 02:59:09 2011 -0800
@@ -31,7 +31,8 @@
 Import('*')
 
 sticky_vars.AddVariables(
-BoolVariable('NO_VECTOR_BOUNDS_CHECKS', Don't do bounds checks, True),
+BoolVariable('NO_VECTOR_BOUNDS_CHECKS', Don't do bounds checks in Ruby,
+ True),
 ('GEMS_ROOT', Add debugging stuff to Ruby, Dir('..').srcnode().abspath),
 )
 
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: SCons: Separately label the global non-sticky o...

2011-03-01 Thread Gabe Black
changeset cf1afc88070f in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=cf1afc88070f
description:
SCons: Separately label the global non-sticky options.

The global sticky options were being printed with a heading, and then 
the
global nonsticky options were being printed immediately after them 
without a
heading. Because the two lists ran together and the first had its own 
heading,
it looked like -all- those options where sticky even though some of them
aren't. This change adds a label to the second list so it's clear 
they're
different.

diffstat:

 SConstruct |  19 +++
 1 files changed, 11 insertions(+), 8 deletions(-)

diffs (35 lines):

diff -r 265202bbac87 -r cf1afc88070f SConstruct
--- a/SConstructTue Mar 01 02:59:09 2011 -0800
+++ b/SConstructTue Mar 01 03:00:42 2011 -0800
@@ -338,20 +338,23 @@
 ('update_ref', 'Update test reference outputs', False)
 )
 
+# Update main environment with values from ARGUMENTS  global_sticky_vars_file
+global_sticky_vars.Update(main)
+global_nonsticky_vars.Update(main)
+global_help_texts = {
+global_sticky : global_sticky_vars.GenerateHelpText(main),
+global_nonsticky : global_nonsticky_vars.GenerateHelpText(main)
+}
 
 # base help text
 help_text = '''
 Usage: scons [scons options] [build options] [target(s)]
 
 Global sticky options:
-'''
-
-# Update main environment with values from ARGUMENTS  global_sticky_vars_file
-global_sticky_vars.Update(main)
-global_nonsticky_vars.Update(main)
-
-help_text += global_sticky_vars.GenerateHelpText(main)
-help_text += global_nonsticky_vars.GenerateHelpText(main)
+%(global_sticky)s
+Global nonsticky options:
+%(global_nonsticky)s
+''' % global_help_texts
 
 # Save sticky variable settings back to current variables file
 global_sticky_vars.Save(global_sticky_vars_file, main)
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] Testing Functional Access

2011-03-01 Thread Nilay
How can I test whether or not functional accesses to the memory are
working correctly? Do we have some regression test for this?

Thanks
Nilay

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


Re: [m5-dev] Testing Functional Access

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

I would suggest a few different tests.  The first one would be to run a simple 
binary under Alpha SE mode using Ruby.  You should first observe a bunch of 
functional accesses that initialize memory and then (if I recall correctly) 
dynamic accesses will load the TLB.  After passing that test, I would try 
loading a SE checkpoint and running.  After that, I would move on to similar 
tests using FS mode. 

I hope that helps.  Please let me know if you have any specific questions.

Brad


 -Original Message-
 From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org]
 On Behalf Of Nilay
 Sent: Tuesday, March 01, 2011 6:51 AM
 To: m5-dev@m5sim.org
 Subject: [m5-dev] Testing Functional Access
 
 How can I test whether or not functional accesses to the memory are
 working correctly? Do we have some regression test for this?
 
 Thanks
 Nilay
 
 ___
 m5-dev mailing list
 m5-dev@m5sim.org
 http://m5sim.org/mailman/listinfo/m5-dev


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


Re: [m5-dev] Testing Functional Access

2011-03-01 Thread Joel Hestness
Hi Nilay,
  I don't know if there is a regression for it, but the M5 utility
(./util/m5/) sets up functional accesses to memory.  For instance, in FS, if
you specify an rcS script to fs.py and call
  % /sbin/m5 readfile
from the command line of the simulated system, it will read the specified
rcS file off the host machine's disk and send it to the memory of the
simulated system using functional accesses.  I think there are other
functional access examples in the magic that the M5 utility provides.
  Hope this helps,
  Joel



On Tue, Mar 1, 2011 at 8:51 AM, Nilay ni...@cs.wisc.edu wrote:

 How can I test whether or not functional accesses to the memory are
 working correctly? Do we have some regression test for this?

 Thanks
 Nilay

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




-- 
  Joel Hestness
  PhD Student, Computer Architecture
  Dept. of Computer Science, University of Texas - Austin
  http://www.cs.utexas.edu/~hestness
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] Testing Functional Access

2011-03-01 Thread Steve Reinhardt
The m5 memtester supports functional accesses (there's a percent_functional
parameter on the MemTest object).  I don't know if anyone's run the
memtester with Ruby though.  Seems like it should work.

Steve

On Tue, Mar 1, 2011 at 8:39 AM, Joel Hestness hestn...@cs.utexas.eduwrote:

 Hi Nilay,
  I don't know if there is a regression for it, but the M5 utility
 (./util/m5/) sets up functional accesses to memory.  For instance, in FS,
 if
 you specify an rcS script to fs.py and call
  % /sbin/m5 readfile
 from the command line of the simulated system, it will read the specified
 rcS file off the host machine's disk and send it to the memory of the
 simulated system using functional accesses.  I think there are other
 functional access examples in the magic that the M5 utility provides.
  Hope this helps,
  Joel



 On Tue, Mar 1, 2011 at 8:51 AM, Nilay ni...@cs.wisc.edu wrote:

  How can I test whether or not functional accesses to the memory are
  working correctly? Do we have some regression test for this?
 
  Thanks
  Nilay
 
  ___
  m5-dev mailing list
  m5-dev@m5sim.org
  http://m5sim.org/mailman/listinfo/m5-dev
 



 --
  Joel Hestness
  PhD Student, Computer Architecture
  Dept. of Computer Science, University of Texas - Austin
  http://www.cs.utexas.edu/~hestness
 ___
 m5-dev mailing list
 m5-dev@m5sim.org
 http://m5sim.org/mailman/listinfo/m5-dev

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


Re: [m5-dev] Testing Functional Access

2011-03-01 Thread Beckmann, Brad
I forgot that the memtester includes functional accesses.  That is a good 
suggestion, especially when it comes to testing the situations where Ruby can't 
satisfy the functional access due to contention with timing accesses.

The memtester does run with Ruby (it actually runs every night in the 
regression tester), however the percentage of functional accesses is currently 
set to zero.  See configs/example/ruby_mem_test.py.  You'll obviously want to 
change that and include code within src/cpu/testers/memtest/* to handle failed 
functional accesses.  If you don't want to initially deal with the failure 
situations, you can set the functional access percentage to 100% and that 
should always work.

Brad


 -Original Message-
 From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org]
 On Behalf Of Steve Reinhardt
 Sent: Tuesday, March 01, 2011 10:49 AM
 To: M5 Developer List
 Subject: Re: [m5-dev] Testing Functional Access
 
 The m5 memtester supports functional accesses (there's a
 percent_functional parameter on the MemTest object).  I don't know if
 anyone's run the memtester with Ruby though.  Seems like it should work.
 
 Steve
 
 On Tue, Mar 1, 2011 at 8:39 AM, Joel Hestness
 hestn...@cs.utexas.eduwrote:
 
  Hi Nilay,
   I don't know if there is a regression for it, but the M5 utility
  (./util/m5/) sets up functional accesses to memory.  For instance, in
  FS, if you specify an rcS script to fs.py and call  % /sbin/m5
  readfile from the command line of the simulated system, it will read
  the specified rcS file off the host machine's disk and send it to the
  memory of the simulated system using functional accesses.  I think
  there are other functional access examples in the magic that the M5
  utility provides.
   Hope this helps,
   Joel
 
 
 
  On Tue, Mar 1, 2011 at 8:51 AM, Nilay ni...@cs.wisc.edu wrote:
 
   How can I test whether or not functional accesses to the memory are
   working correctly? Do we have some regression test for this?
  
   Thanks
   Nilay
  
   ___
   m5-dev mailing list
   m5-dev@m5sim.org
   http://m5sim.org/mailman/listinfo/m5-dev
  
 
 
 
  --
   Joel Hestness
   PhD Student, Computer Architecture
   Dept. of Computer Science, University of Texas - Austin
  http://www.cs.utexas.edu/~hestness
  ___
  m5-dev mailing list
  m5-dev@m5sim.org
  http://m5sim.org/mailman/listinfo/m5-dev
 
 ___
 m5-dev mailing list
 m5-dev@m5sim.org
 http://m5sim.org/mailman/listinfo/m5-dev


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


[m5-dev] Review Request: Ruby: Fix DPRINTF bugs in PerfectSwitch and MessageBuffer

2011-03-01 Thread Nilay Vaish

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

Review request for Default.


Summary
---

At a couple of places in PerfectSwitch.cc and MessageBuffer.cc, DPRINTF()
has not been provided with correct number of arguments. The patch fixes these
bugs.


Diffs
-

  src/mem/ruby/buffers/MessageBuffer.cc UNKNOWN 
  src/mem/ruby/network/simple/PerfectSwitch.cc UNKNOWN 

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


Testing
---


Thanks,

Nilay

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


Re: [m5-dev] Review Request: Ruby: Fix DPRINTF bugs in PerfectSwitch and MessageBuffer

2011-03-01 Thread Brad Beckmann

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

Ship it!


- Brad


On 2011-03-01 13:31:45, Nilay Vaish wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/505/
 ---
 
 (Updated 2011-03-01 13:31:45)
 
 
 Review request for Default.
 
 
 Summary
 ---
 
 At a couple of places in PerfectSwitch.cc and MessageBuffer.cc, DPRINTF()
 has not been provided with correct number of arguments. The patch fixes these
 bugs.
 
 
 Diffs
 -
 
   src/mem/ruby/buffers/MessageBuffer.cc UNKNOWN 
   src/mem/ruby/network/simple/PerfectSwitch.cc UNKNOWN 
 
 Diff: http://reviews.m5sim.org/r/505/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Nilay
 


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


Re: [m5-dev] Review Request: Ruby: Fix DPRINTF bugs in PerfectSwitch and MessageBuffer

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

In the future, feel free to directly check in these sort of minor bug fixes.

Thanks,

Brad


 -Original Message-
 From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org]
 On Behalf Of Nilay Vaish
 Sent: Tuesday, March 01, 2011 1:32 PM
 To: Nilay Vaish; Default
 Subject: [m5-dev] Review Request: Ruby: Fix DPRINTF bugs in PerfectSwitch
 and MessageBuffer
 
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviews.m5sim.org/r/505/
 ---
 
 Review request for Default.
 
 
 Summary
 ---
 
 At a couple of places in PerfectSwitch.cc and MessageBuffer.cc, DPRINTF()
 has not been provided with correct number of arguments. The patch fixes
 these bugs.
 
 
 Diffs
 -
 
   src/mem/ruby/buffers/MessageBuffer.cc UNKNOWN
   src/mem/ruby/network/simple/PerfectSwitch.cc UNKNOWN
 
 Diff: http://reviews.m5sim.org/r/505/diff
 
 
 Testing
 ---
 
 
 Thanks,
 
 Nilay
 
 ___
 m5-dev mailing list
 m5-dev@m5sim.org
 http://m5sim.org/mailman/listinfo/m5-dev


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


[m5-dev] Review Request: cpu: split o3-specific parts out of BaseDynInst

2011-03-01 Thread Korey Sewell

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

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


Summary
---

cpu: split o3-specific parts out of BaseDynInst
The bigger picture goal is that I want to get the InorderDynInst class derived 
from the
BaseDynInst, since there is no need to replicate a lot of useful code already 
defined
in BaseDynInst (e.g. microcode identification, etc.) and Inorder can take 
advantage
of common code that handles microcode and other features that other ISAs need.

But to do this, there are a lot of o3-specific things that are in BaseDynInst, 
that I pushed to
O3DynInst in this patch. Book-keeping variables that handle the IQ,LSQ,ROB are 
unnecessary in
the base class but generic variables that will work across CPUs (IsSquashed, 
IsCompleted, etc.)
are kept in the base class.

The upside is more consistency across the simple models (branch prediction and 
instruction
identification are all in one common place).

I really wanted to define pure virtual functions for read/write(to memory) and 
the
setInt/FloatRegOperand, but virtual functions in a templated class is a no-no 
and
I couldn't get around that (suggestions?).

Also, I'd rather not use the this- pointer all over the place to access 
member variables of
the templated Base class, but it had to be done.

Other than those quirks, simulator functionality should stay the same as the O3 
Model always references
the O3DynInst pointer and the InOrder model doesnt currently make use of the 
base dyn inst. class.
(but it will be easier to derive from now...)


Diffs
-

  src/cpu/base_dyn_inst.hh cf1afc88070f 
  src/cpu/base_dyn_inst_impl.hh cf1afc88070f 
  src/cpu/o3/dyn_inst.hh cf1afc88070f 
  src/cpu/o3/dyn_inst_impl.hh cf1afc88070f 

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


Testing
---


Thanks,

Korey

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


[m5-dev] changeset in m5: Ruby: Fix DPRINTF bugs in PerfectSwitch and Mes...

2011-03-01 Thread Nilay Vaish
changeset 2e1ee8ec6266 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=2e1ee8ec6266
description:
Ruby: Fix DPRINTF bugs in PerfectSwitch and MessageBuffer
At a couple of places in PerfectSwitch.cc and MessageBuffer.cc, 
DPRINTF()
has not been provided with correct number of arguments. The patch fixes 
these
bugs.

diffstat:

 src/mem/ruby/buffers/MessageBuffer.cc|  2 +-
 src/mem/ruby/network/simple/PerfectSwitch.cc |  2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diffs (24 lines):

diff -r cf1afc88070f -r 2e1ee8ec6266 src/mem/ruby/buffers/MessageBuffer.cc
--- a/src/mem/ruby/buffers/MessageBuffer.cc Tue Mar 01 03:00:42 2011 -0800
+++ b/src/mem/ruby/buffers/MessageBuffer.cc Tue Mar 01 15:26:11 2011 -0600
@@ -380,7 +380,7 @@
 void
 MessageBuffer::stallMessage(const Address addr)
 {
-DPRINTF(RubyQueue, Stalling %s\n);
+DPRINTF(RubyQueue, Stalling due to %s\n, addr);
 assert(isReady());
 assert(addr.getOffset() == 0);
 MsgPtr message = m_prio_heap.front().m_msgptr;
diff -r cf1afc88070f -r 2e1ee8ec6266 
src/mem/ruby/network/simple/PerfectSwitch.cc
--- a/src/mem/ruby/network/simple/PerfectSwitch.cc  Tue Mar 01 03:00:42 
2011 -0800
+++ b/src/mem/ruby/network/simple/PerfectSwitch.cc  Tue Mar 01 15:26:11 
2011 -0600
@@ -300,7 +300,7 @@
 output_link_destinations[i];
 
 // Enqeue msg
-DPRINTF(RubyNetwork, %d enqueuing net msg from 
+DPRINTF(RubyNetwork, Enqueuing net msg from 
 inport[%d][%d] to outport [%d][%d] time: 
%lld.\n,
 incoming, vnet, outgoing, vnet,
 g_eventQueue_ptr-getTime());
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: X86: Mark prefetches as such in their instructi...

2011-03-01 Thread Gabe Black
changeset 77ee9ad2e113 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=77ee9ad2e113
description:
X86: Mark prefetches as such in their instruction and request flags.

diffstat:

 src/arch/x86/isa/microops/ldstop.isa |  4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diffs (23 lines):

diff -r 2e1ee8ec6266 -r 77ee9ad2e113 src/arch/x86/isa/microops/ldstop.isa
--- a/src/arch/x86/isa/microops/ldstop.isa  Tue Mar 01 15:26:11 2011 -0600
+++ b/src/arch/x86/isa/microops/ldstop.isa  Tue Mar 01 22:42:18 2011 -0800
@@ -282,8 +282,10 @@
 self.memFlags = baseFlags
 if atCPL0:
 self.memFlags +=  | (CPL0FlagBit  FlagShift)
+self.instFlags = 
 if prefetch:
 self.memFlags +=  | Request::PREFETCH
+self.instFlags +=  | StaticInst::IsDataPrefetch
 self.memFlags +=  | (machInst.legacy.addr ?  + \
  (AddrSizeFlagBit  FlagShift) : 0)
 
@@ -293,7 +295,7 @@
 %(disp)s, %(segment)s, %(data)s,
 %(dataSize)s, %(addressSize)s, %(memFlags)s)''' % {
 class_name : self.className,
-flags : self.microFlagsText(microFlags),
+flags : self.microFlagsText(microFlags) + self.instFlags,
 scale : self.scale, index : self.index,
 base : self.base,
 disp : self.disp,
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


[m5-dev] changeset in m5: X86: Mark IO reads and writes as non-speculative.

2011-03-01 Thread Gabe Black
changeset 53c2d9b1c15d in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=53c2d9b1c15d
description:
X86: Mark IO reads and writes as non-speculative.

diffstat:

 src/arch/x86/isa/insts/general_purpose/input_output/general_io.py |  12 ++-
 src/arch/x86/isa/insts/general_purpose/input_output/string_io.py  |  12 ++-
 src/arch/x86/isa/microops/ldstop.isa  |  34 
++---
 3 files changed, 37 insertions(+), 21 deletions(-)

diffs (188 lines):

diff -r 77ee9ad2e113 -r 53c2d9b1c15d 
src/arch/x86/isa/insts/general_purpose/input_output/general_io.py
--- a/src/arch/x86/isa/insts/general_purpose/input_output/general_io.py Tue Mar 
01 22:42:18 2011 -0800
+++ b/src/arch/x86/isa/insts/general_purpose/input_output/general_io.py Tue Mar 
01 22:42:59 2011 -0800
@@ -42,22 +42,26 @@
 def macroop IN_R_I {
 .adjust_imm trimImm(8)
 limm t1, imm, dataSize=asz
-ld reg, intseg, [1, t1, t0], IntAddrPrefixIO  3, addressSize=8
+ld reg, intseg, [1, t1, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 };
 
 def macroop IN_R_R {
 zexti t2, regm, 15, dataSize=8
-ld reg, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8
+ld reg, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 };
 
 def macroop OUT_I_R {
 .adjust_imm trimImm(8)
 limm t1, imm, dataSize=8
-st reg, intseg, [1, t1, t0], IntAddrPrefixIO  3, addressSize=8
+st reg, intseg, [1, t1, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 };
 
 def macroop OUT_R_R {
 zexti t2, reg, 15, dataSize=8
-st regm, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8
+st regm, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 };
 '''
diff -r 77ee9ad2e113 -r 53c2d9b1c15d 
src/arch/x86/isa/insts/general_purpose/input_output/string_io.py
--- a/src/arch/x86/isa/insts/general_purpose/input_output/string_io.py  Tue Mar 
01 22:42:18 2011 -0800
+++ b/src/arch/x86/isa/insts/general_purpose/input_output/string_io.py  Tue Mar 
01 22:42:59 2011 -0800
@@ -45,7 +45,8 @@
 
 zexti t2, reg, 15, dataSize=8
 
-ld t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8
+ld t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 st t6, es, [1, t0, rdi]
 
 add rdi, rdi, t3, dataSize=asz
@@ -63,7 +64,8 @@
 zexti t2, reg, 15, dataSize=8
 
 topOfLoop:
-ld t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8
+ld t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 st t6, es, [1, t0, rdi]
 
 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
@@ -83,7 +85,8 @@
 zexti t2, reg, 15, dataSize=8
 
 ld t6, ds, [1, t0, rsi]
-st t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8
+st t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 
 add rsi, rsi, t3, dataSize=asz
 };
@@ -101,7 +104,8 @@
 
 topOfLoop:
 ld t6, ds, [1, t0, rsi]
-st t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8
+st t6, intseg, [1, t2, t0], IntAddrPrefixIO  3, addressSize=8, \
+nonSpec=True
 
 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
 add rsi, rsi, t3, dataSize=asz
diff -r 77ee9ad2e113 -r 53c2d9b1c15d src/arch/x86/isa/microops/ldstop.isa
--- a/src/arch/x86/isa/microops/ldstop.isa  Tue Mar 01 22:42:18 2011 -0800
+++ b/src/arch/x86/isa/microops/ldstop.isa  Tue Mar 01 22:42:59 2011 -0800
@@ -272,7 +272,7 @@
 let {{
 class LdStOp(X86Microop):
 def __init__(self, data, segment, addr, disp,
-dataSize, addressSize, baseFlags, atCPL0, prefetch):
+dataSize, addressSize, baseFlags, atCPL0, prefetch, nonSpec):
 self.data = data
 [self.scale, self.index, self.base] = addr
 self.disp = disp
@@ -285,7 +285,9 @@
 self.instFlags = 
 if prefetch:
 self.memFlags +=  | Request::PREFETCH
-self.instFlags +=  | StaticInst::IsDataPrefetch
+self.instFlags +=  | (1ULL  StaticInst::IsDataPrefetch)
+if nonSpec:
+self.instFlags +=  | (1ULL  StaticInst::IsNonSpeculative)
 self.memFlags +=  | (machInst.legacy.addr ?  + \
  (AddrSizeFlagBit  FlagShift) : 0)
 
@@ -306,7 +308,7 @@
 
 class BigLdStOp(X86Microop):
 def __init__(self, data, segment, addr, disp,
-dataSize, addressSize, baseFlags, atCPL0, prefetch):
+dataSize, addressSize, baseFlags, atCPL0, prefetch, nonSpec):
 self.data = data
 [self.scale, self.index, self.base] = addr
 self.disp = disp
@@ -316,8 +318,12 @@
 self.memFlags = baseFlags
 if atCPL0:
 self.memFlags +=  | 

[m5-dev] changeset in m5: X86: Update stats for the x86 o3 hello world re...

2011-03-01 Thread Gabe Black
changeset 0dcd19617556 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=0dcd19617556
description:
X86: Update stats for the x86 o3 hello world regression.

diffstat:

 tests/quick/00.hello/ref/x86/linux/o3-timing/simout|   6 +-
 tests/quick/00.hello/ref/x86/linux/o3-timing/stats.txt |  66 +-
 2 files changed, 36 insertions(+), 36 deletions(-)

diffs (175 lines):

diff -r 53c2d9b1c15d -r 0dcd19617556 
tests/quick/00.hello/ref/x86/linux/o3-timing/simout
--- a/tests/quick/00.hello/ref/x86/linux/o3-timing/simout   Tue Mar 01 
22:42:59 2011 -0800
+++ b/tests/quick/00.hello/ref/x86/linux/o3-timing/simout   Tue Mar 01 
23:18:00 2011 -0800
@@ -5,9 +5,9 @@
 All Rights Reserved
 
 
-M5 compiled Feb 12 2011 02:22:23
-M5 revision 5e76f9de6972 7961 default qtip tip x86branchdetectstats.patch
-M5 started Feb 12 2011 02:22:27
+M5 compiled Mar  1 2011 23:14:11
+M5 revision 42f62a19a71d 8104 default qbase qtip tip x86seo3stats.patch
+M5 started Mar  1 2011 23:14:13
 M5 executing on burrito
 command line: build/X86_SE/m5.opt -d 
build/X86_SE/tests/opt/quick/00.hello/x86/linux/o3-timing -re tests/run.py 
build/X86_SE/tests/opt/quick/00.hello/x86/linux/o3-timing
 Global frequency set at 1 ticks per second
diff -r 53c2d9b1c15d -r 0dcd19617556 
tests/quick/00.hello/ref/x86/linux/o3-timing/stats.txt
--- a/tests/quick/00.hello/ref/x86/linux/o3-timing/stats.txtTue Mar 01 
22:42:59 2011 -0800
+++ b/tests/quick/00.hello/ref/x86/linux/o3-timing/stats.txtTue Mar 01 
23:18:00 2011 -0800
@@ -1,9 +1,9 @@
 
 -- Begin Simulation Statistics --
-host_inst_rate  47598   # 
Simulator instruction rate (inst/s)
-host_mem_usage 231896   # 
Number of bytes of host memory used
-host_seconds 0.21   # 
Real time elapsed on the host
-host_tick_rate   55349277   # 
Simulator tick rate (ticks/s)
+host_inst_rate 103787   # 
Simulator instruction rate (inst/s)
+host_mem_usage 224152   # 
Number of bytes of host memory used
+host_seconds 0.09   # 
Real time elapsed on the host
+host_tick_rate  120600528   # 
Simulator tick rate (ticks/s)
 sim_freq 1   # 
Frequency of simulated ticks
 sim_insts9809   # 
Number of instructions simulated
 sim_seconds  0.11   # 
Number of seconds simulated
@@ -213,28 +213,28 @@
 system.cpu.idleCycles9434   # 
Total number of cycles that the CPU has spent unscheduled due to idling
 system.cpu.iew.EXEC:branches 1551   # 
Number of branches executed
 system.cpu.iew.EXEC:nop 0   # 
number of nop insts executed
-system.cpu.iew.EXEC:rate 0.676151   # 
Inst execution rate
-system.cpu.iew.EXEC:refs 2971   # 
number of memory reference insts executed
+system.cpu.iew.EXEC:rate 0.676108   # 
Inst execution rate
+system.cpu.iew.EXEC:refs 2970   # 
number of memory reference insts executed
 system.cpu.iew.EXEC:stores   1306   # 
Number of stores executed
 system.cpu.iew.EXEC:swp 0   # 
number of swp insts executed
-system.cpu.iew.WB:consumers 14704   # 
num instructions consuming a value
+system.cpu.iew.WB:consumers 14702   # 
num instructions consuming a value
 system.cpu.iew.WB:count 15138   # 
cumulative count of insts written-back
-system.cpu.iew.WB:fanout 0.679747   # 
average fanout of values written-back
+system.cpu.iew.WB:fanout 0.679703   # 
average fanout of values written-back
 system.cpu.iew.WB:penalized 0   # 
number of instrctions required to write to 'other' IQ
 system.cpu.iew.WB:penalized_rate0   # 
fraction of instructions written-back that wrote to 'other' IQ
-system.cpu.iew.WB:producers  9995   # 
num instructions producing a value
+system.cpu.iew.WB:producers  9993   # 
num instructions producing a 

[m5-dev] changeset in m5: Spelling: Fix the a spelling error by changing ...

2011-03-01 Thread Gabe Black
changeset 906864dd0937 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=906864dd0937
description:
Spelling: Fix the a spelling error by changing mmaped to mmapped.

There may not be a formally correct spelling for the past tense of 
mmap, but
mmapped is the spelling Google doesn't try to autocorrect. This makes 
sense
because it mirrors the past tense of map-mapped and not the past tense 
of
cape-caped.

diffstat:

 src/arch/SConscript   |   2 +-
 src/arch/alpha/mmaped_ipr.hh  |  63 -
 src/arch/alpha/mmapped_ipr.hh |  63 +
 src/arch/arm/mmaped_ipr.hh|  64 -
 src/arch/arm/mmapped_ipr.hh   |  64 +
 src/arch/mips/mmaped_ipr.hh   |  62 
 src/arch/mips/mmapped_ipr.hh  |  62 
 src/arch/power/mmaped_ipr.hh  |  66 --
 src/arch/power/mmapped_ipr.hh |  66 ++
 src/arch/sparc/mmaped_ipr.hh  |  72 -
 src/arch/sparc/mmapped_ipr.hh |  72 +
 src/arch/sparc/tlb.cc |   2 +-
 src/arch/x86/mmaped_ipr.hh|  92 ---
 src/arch/x86/mmapped_ipr.hh   |  92 +++
 src/arch/x86/tlb.cc   |   4 +-
 src/cpu/simple/atomic.cc  |   6 +-
 src/cpu/simple/timing.cc  |   8 +-
 src/mem/physical.cc   |   2 +-
 src/mem/request.hh|   4 +-
 19 files changed, 433 insertions(+), 433 deletions(-)

diffs (truncated from 1033 to 300 lines):

diff -r 0dcd19617556 -r 906864dd0937 src/arch/SConscript
--- a/src/arch/SConscript   Tue Mar 01 23:18:00 2011 -0800
+++ b/src/arch/SConscript   Tue Mar 01 23:18:47 2011 -0800
@@ -50,7 +50,7 @@
 kernel_stats.hh
 locked_mem.hh
 microcode_rom.hh
-mmaped_ipr.hh
+mmapped_ipr.hh
 mt.hh
 process.hh
 predecoder.hh
diff -r 0dcd19617556 -r 906864dd0937 src/arch/alpha/mmaped_ipr.hh
--- a/src/arch/alpha/mmaped_ipr.hh  Tue Mar 01 23:18:00 2011 -0800
+++ /dev/null   Thu Jan 01 00:00:00 1970 +
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2006 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: Ali Saidi
- */
-
-#ifndef __ARCH_ALPHA_MMAPED_IPR_HH__
-#define __ARCH_ALPHA_MMAPED_IPR_HH__
-
-/**
- * @file
- *
- * ISA-specific helper functions for memory mapped IPR accesses.
- */
-
-#include base/types.hh
-#include mem/packet.hh
-
-class ThreadContext;
-
-namespace AlphaISA {
-
-inline Tick
-handleIprRead(ThreadContext *xc, Packet *pkt)
-{
-panic(No handleIprRead implementation in Alpha\n);
-}
-
-
-inline Tick
-handleIprWrite(ThreadContext *xc, Packet *pkt)
-{
-panic(No handleIprWrite implementation in Alpha\n);
-}
-
-
-} // namespace AlphaISA
-
-#endif // __ARCH_ALPHA_MMAPED_IPR_HH__
diff -r 0dcd19617556 -r 906864dd0937 src/arch/alpha/mmapped_ipr.hh
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/src/arch/alpha/mmapped_ipr.hh Tue Mar 01 23:18:47 2011 -0800
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2006 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