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

2009-03-08 Thread Cron Daemon
* build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-atomic-mp 
passed.
* build/ALPHA_SE/tests/fast/quick/01.hello-2T-smt/alpha/linux/o3-timing 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-atomic 
passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-atomic passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing 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/o3-timing passed.
* build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-timing-mp 
passed.
* build/ALPHA_SE/tests/fast/long/50.vortex/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/long/70.twolf/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/long/70.twolf/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/long/50.vortex/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/long/30.eon/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/long/00.gzip/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest passed.
* build/ALPHA_SE/tests/fast/long/30.eon/alpha/tru64/simple-timing 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_SE/tests/fast/long/00.gzip/alpha/tru64/simple-timing 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/simple-timing passed.
* build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-atomic passed.
* build/ALPHA_SE/tests/fast/long/50.vortex/alpha/tru64/o3-timing passed.
* build/ALPHA_SE/tests/fast/long/60.bzip2/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/fast/long/40.perlbmk/alpha/tru64/simple-atomic 
passed.
* build/ALPHA_SE/tests/fast/long/70.twolf/alpha/tru64/o3-timing passed.
* build/ALPHA_FS/tests/fast/long/10.linux-boot/alpha/linux/tsunami-o3 
passed.
* build/ALPHA_FS/tests/fast/long/10.linux-boot/alpha/linux/tsunami-o3-dual 
passed.
* build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-timing 
passed.
* build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-atomic 
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-atomic passed.
* build/SPARC_SE/tests/fast/long/50.vortex/sparc/linux/simple-atomic passed.
* build/SPARC_SE/tests/fast/long/70.twolf/sparc/linux/simple-atomic passed.
* build/SPARC_SE/tests/fast/long/10.mcf/sparc/linux/simple-atomic passed.
* build/SPARC_SE/tests/fast/long/50.vortex/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/long/70.twolf/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/long/10.mcf/sparc/linux/simple-timing passed.
* build/ALPHA_SE/tests/fast/long/60.bzip2/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/fast/long/40.perlbmk/alpha/tru64/simple-timing 
passed.
* build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-atomic passed.
* build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/long/00.gzip/sparc/linux/simple-atomic passed.
* build/X86_SE/tests/fast/long/70.twolf/x86/linux/simple-atomic passed.
* build/X86_SE/tests/fast/long/10.mcf/x86/linux/simple-atomic passed.
* build/X86_SE/tests/fast/long/70.twolf/x86/linux/simple-timing passed.
* build/X86_SE/tests/fast/long/10.mcf/x86/linux/simple-timing passed.
* build/SPARC_SE/tests/fast/long/00.gzip/sparc/linux/simple-timing passed.
* build/X86_SE/tests/fast/long/20.parser/x86/linux/simple-atomic passed.
* 
build/SPARC_FS/tests/fast/long/80.solaris-boot/sparc/solaris/t1000-simple-atomic
 passed.
* build/X86_SE/tests/fast/long/00.gzip/x86/linux/simple-atomic passed.
* build/ALPHA_SE/tests/fast/long/30.eon/alpha/tru64/o3-timing passed.
* build/X86_SE/tests/fast/long/20.parser/x86/linux/simple-timing passed.
* build/X86_SE/tests/fast/long/00.gzip/x86/linux/simple-timing passed.
* build/ALPHA_SE/tests/fast/long/00.gzip/alpha/tru64/o3-timing passed.
* 

Re: [m5-dev] changeset in m5: build: fix compiler warnings in g++ 3.4

2009-03-08 Thread Gabe Black
nathan binkert wrote:
 Seems like it would be worth setting up a slew of g++ revs on zizzer
 and running regressions under all of them, maybe on a rotating
 basis...
 

 Yeah, I agree.  Multiple revs of swig and maybe scons would be good
 too.  I think we should set up a separate compile everything
 regression actually.  It doesn't take that long to compile the tree,
 and with the pool being available, we could just compile a bunch of
 combinations.

   Nate
 ___
 m5-dev mailing list
 m5-dev@m5sim.org
 http://m5sim.org/mailman/listinfo/m5-dev
   
This sounds like a good idea, and I think as long as we compile under 
the different versions we'll get 95% of the benefit. I think any 
difference in correctness of execution would be very unlikely, so 
running the regressions themselves more than once would probably not be 
worth the effort. Maybe a rotation like you suggested would hit all the 
variations often enough that if it -does- happen then we'll catch it 
eventually.

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


Re: [m5-dev] X86 support

2009-03-08 Thread Girish Venkatasubramanian
Hello Gabe,
Thanks for the reply. I have used Simics for booting a disk image and
running workloads for the X86 architecture and I would like to try the
same on M5. I have a few questions regarding this.
1) Is M5 currently capable of doing this?
2) Is the X86 processor model cycle accurate?
3) If the answers to bot the above questions are No - then this
question i smoot. Otherwise, how does the X86 cpu model simulate
memory hierarchy timing - specifically TLBs and the caches - in terms
of lookup and replacement functionality?
Thanks,
Girish

 Date: Sat, 07 Mar 2009 10:55:19 -0800
 From: Gabe Black gbl...@eecs.umich.edu
 Subject: Re: [m5-dev] X86 support
 To: M5 Developer List m5-dev@m5sim.org
 Message-ID: 49b2c317.5050...@eecs.umich.edu
 Content-Type: text/plain; charset=ISO-8859-1

 Hi Girish. We don't have a specific date in mind when we'll consider X86
 finished, at least not yet. Almost all of the work we've done on it is
 available in our repositories though, and while it can't do everything
 it does support a lot. If you can describe what you need I could give
 you a better idea of what to expect.

 Gabe

 Girish Venkatasubramanian wrote:
 Hello,
 I am Girish, a grad student from University of Florida. I came across
 M5 and found it very interesting. I am interested in trying out M5 to
 see if I can use that for my work.

 One question - I see from the Main Page that support for X86 is under
 development. Do you have a target date for releasing this model?
 Thanks,
 Girish
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] X86 support

2009-03-08 Thread Gabe Black
That depends on what's on the disk image. If it's a 64 bit uniprocessor 
Linux kernel, it will likely almost work, or possibly actually work. If 
it's any other OS I don't know what will happen since I haven't tried it 
myself. In M5, CPU models are not generally for one ISA or another. 
Theoretically, you should be able to plug any ISA into any CPU model we 
have and it should work. In reality, the simple atomic CPU model 
supports x86 the best, followed by the simple timing CPU. We have two 
other main CPU models as well, but those need work before they support 
x86. We have a TLB for each ISA which behaves like you would expect a 
TLB to in each case, as well as a common memory system which simulates 
timing, caches, various coherence protocols, etc. The TLB for x86 uses a 
simple idealized LRU replacement policy, but it wouldn't be hard, 
relatively speaking, to replace that with whatever you wanted.

The other M5 developers can probably give you a better picture of how 
accurate the various CPU models are, what the memory system simulates, etc.

Gabe

Girish Venkatasubramanian wrote:
 Hello Gabe,
 Thanks for the reply. I have used Simics for booting a disk image and
 running workloads for the X86 architecture and I would like to try the
 same on M5. I have a few questions regarding this.
 1) Is M5 currently capable of doing this?
 2) Is the X86 processor model cycle accurate?
 3) If the answers to bot the above questions are No - then this
 question i smoot. Otherwise, how does the X86 cpu model simulate
 memory hierarchy timing - specifically TLBs and the caches - in terms
 of lookup and replacement functionality?
 Thanks,
 Girish

   
 Date: Sat, 07 Mar 2009 10:55:19 -0800
 From: Gabe Black gbl...@eecs.umich.edu
 Subject: Re: [m5-dev] X86 support
 To: M5 Developer List m5-dev@m5sim.org
 Message-ID: 49b2c317.5050...@eecs.umich.edu
 Content-Type: text/plain; charset=ISO-8859-1

 Hi Girish. We don't have a specific date in mind when we'll consider X86
 finished, at least not yet. Almost all of the work we've done on it is
 available in our repositories though, and while it can't do everything
 it does support a lot. If you can describe what you need I could give
 you a better idea of what to expect.

 Gabe

 Girish Venkatasubramanian wrote:
 
 Hello,
 I am Girish, a grad student from University of Florida. I came across
 M5 and found it very interesting. I am interested in trying out M5 to
 see if I can use that for my work.

 One question - I see from the Main Page that support for X86 is under
 development. Do you have a target date for releasing this model?
 Thanks,
 Girish
   
 ___
 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] old code

2009-03-08 Thread Gabe Black
Please don't do anything with the TLBs yet. I'm hoping to send out a
patch tonight.

Gabe

nathan binkert wrote:
 1) Anybody have any problems if I remove the last remnants of
 turbolaser code that's in the TLB?  We haven't had the devices in
 forever and I just don't see it ever being used?

 2) There's a bunch of code to make stats compatible with simplescalar
 output.  Can I clobber it all and use the normal M5 output?  This
 would change statistics output for distributions mostly, but it would
 actually make it easier to parse if you wanted to.

 3) We have SS_COMPATIBLE_FP and default it to being on.  Do we still
 care about this?  I'm guessing the answer is Yes and we want it for
 EIO.  Do we want to default to it being on?

 I'd really like to ditch the first two, I can see steve saying that we
 should leave #3 alone (which I'm fine with.)

   Nate
 ___
 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] old code

2009-03-08 Thread nathan binkert
 Please don't do anything with the TLBs yet. I'm hoping to send out a
 patch tonight.

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


[m5-dev] [PATCH] imported patch unifytlb.patch

2009-03-08 Thread gblack
Patch subject is complete summary.


# HG changeset patch
# User Gabe Black gbl...@eecs.umich.edu
# Date 1236576344 25200
# Node ID 1c069851445b283974b8c1ed4102659ef86b96e4
# Parent  74bc713c71ce4e2a2e29958ff2f4c6f5c6ab6aa0
imported patch unifytlb.patch

diff --git a/src/arch/alpha/AlphaTLB.py b/src/arch/alpha/AlphaTLB.py
--- a/src/arch/alpha/AlphaTLB.py
+++ b/src/arch/alpha/AlphaTLB.py
@@ -33,15 +33,5 @@
 
 class AlphaTLB(BaseTLB):
 type = 'AlphaTLB'
-abstract = True
-size = Param.Int(TLB size)
-
-class AlphaDTB(AlphaTLB):
-type = 'AlphaDTB'
-cxx_class = 'AlphaISA::DTB'
-size = 64
-
-class AlphaITB(AlphaTLB):
-type = 'AlphaITB'
-cxx_class = 'AlphaISA::ITB'
-size = 48
+cxx_class = 'AlphaISA::TLB'
+size = Param.Int(64, TLB size)
diff --git a/src/arch/alpha/tlb.cc b/src/arch/alpha/tlb.cc
--- a/src/arch/alpha/tlb.cc
+++ b/src/arch/alpha/tlb.cc
@@ -70,6 +70,90 @@
 {
 if (table)
 delete [] table;
+}
+
+void
+TLB::regStats()
+{
+fetch_hits
+.name(name() + .fetch_hits)
+.desc(ITB hits);
+fetch_misses
+.name(name() + .fetch_misses)
+.desc(ITB misses);
+fetch_acv
+.name(name() + .fetch_acv)
+.desc(ITB acv);
+fetch_accesses
+.name(name() + .fetch_accesses)
+.desc(ITB accesses);
+
+fetch_accesses = fetch_hits + fetch_misses;
+
+read_hits
+.name(name() + .read_hits)
+.desc(DTB read hits)
+;
+
+read_misses
+.name(name() + .read_misses)
+.desc(DTB read misses)
+;
+
+read_acv
+.name(name() + .read_acv)
+.desc(DTB read access violations)
+;
+
+read_accesses
+.name(name() + .read_accesses)
+.desc(DTB read accesses)
+;
+
+write_hits
+.name(name() + .write_hits)
+.desc(DTB write hits)
+;
+
+write_misses
+.name(name() + .write_misses)
+.desc(DTB write misses)
+;
+
+write_acv
+.name(name() + .write_acv)
+.desc(DTB write access violations)
+;
+
+write_accesses
+.name(name() + .write_accesses)
+.desc(DTB write accesses)
+;
+
+data_hits
+.name(name() + .data_hits)
+.desc(DTB hits)
+;
+
+data_misses
+.name(name() + .data_misses)
+.desc(DTB misses)
+;
+
+data_acv
+.name(name() + .data_acv)
+.desc(DTB access violations)
+;
+
+data_accesses
+.name(name() + .data_accesses)
+.desc(DTB accesses)
+;
+
+data_hits = read_hits + write_hits;
+data_misses = read_misses + write_misses;
+data_acv = read_acv + write_acv;
+data_accesses = read_accesses + write_accesses;
 }
 
 // look up an entry in the TLB
@@ -288,36 +372,8 @@
 }
 }
 
-///
-//
-//  Alpha ITB
-//
-ITB::ITB(const Params *p)
-: TLB(p)
-{}
-
-
-void
-ITB::regStats()
-{
-hits
-.name(name() + .hits)
-.desc(ITB hits);
-misses
-.name(name() + .misses)
-.desc(ITB misses);
-acv
-.name(name() + .acv)
-.desc(ITB acv);
-accesses
-.name(name() + .accesses)
-.desc(ITB accesses);
-
-accesses = hits + misses;
-}
-
 Fault
-ITB::translateAtomic(RequestPtr req, ThreadContext *tc)
+TLB::translateInst(RequestPtr req, ThreadContext *tc)
 {
 //If this is a pal pc, then set PHYSICAL
 if (FULL_SYSTEM  PcPAL(req-getPC()))
@@ -326,7 +382,7 @@
 if (PcPAL(req-getPC())) {
 // strip off PAL PC marker (lsb is 1)
 req-setPaddr((req-getVaddr()  ~3)  PAddrImplMask);
-hits++;
+fetch_hits++;
 return NoFault;
 }
 
@@ -335,7 +391,7 @@
 } else {
 // verify that this is a good virtual address
 if (!validVirtualAddress(req-getVaddr())) {
-acv++;
+fetch_acv++;
 return new ItbAcvFault(req-getVaddr());
 }
 
@@ -352,7 +408,7 @@
 // only valid in kernel mode
 if (ICM_CM(tc-readMiscRegNoEffect(IPR_ICM)) !=
 mode_kernel) {
-acv++;
+fetch_acv++;
 return new ItbAcvFault(req-getVaddr());
 }
 
@@ -373,7 +429,7 @@
   asn);
 
 if (!entry) {
-misses++;
+fetch_misses++;
 return new ItbPageFault(req-getVaddr());
 }
 
@@ -385,11 +441,11 @@
 if (!(entry-xre 
   (1  ICM_CM(tc-readMiscRegNoEffect(IPR_ICM) {
 // instruction access fault
-acv++;
+fetch_acv++;
 return new ItbAcvFault(req-getVaddr());
 }
 
-hits++;
+fetch_hits++;
 }
 }
 
@@ -401,93 +457,8 @@
 
 }
 
-void
-ITB::translateTiming(RequestPtr req, ThreadContext *tc,
-Translation