changeset a1a85250e897 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=a1a85250e897
description:
        ARM: Add full-system regressions

diffstat:

 tests/SConscript                                                               
|   21 +-
 tests/configs/realview-simple-atomic.py                                        
|   96 +
 tests/configs/realview-simple-timing.py                                        
|   98 +
 tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini                      
|    2 +-
 tests/long/00.gzip/ref/arm/linux/simple-atomic/simout                          
|    8 +-
 tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt                       
|   32 +-
 tests/long/10.mcf/ref/arm/linux/simple-atomic/config.ini                       
|    4 +-
 tests/long/10.mcf/ref/arm/linux/simple-atomic/simout                           
|    8 +-
 tests/long/10.mcf/ref/arm/linux/simple-atomic/stats.txt                        
|   32 +-
 tests/long/10.mcf/ref/arm/linux/simple-timing/config.ini                       
|    6 +-
 tests/long/10.mcf/ref/arm/linux/simple-timing/simout                           
|   10 +-
 tests/long/10.mcf/ref/arm/linux/simple-timing/stats.txt                        
|   32 +-
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/config.ini      
|  578 ++++++++++
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simerr          
|   39 +
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simout          
|   16 +
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/stats.txt       
|  399 ++++++
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/status          
|    1 +
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/system.terminal 
|    0 
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/config.ini      
|  575 +++++++++
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simerr          
|   39 +
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simout          
|   16 +
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/stats.txt       
|  483 ++++++++
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/status          
|    1 +
 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/system.terminal 
|    0 
 util/regress                                                                   
|    2 +-
 25 files changed, 2464 insertions(+), 34 deletions(-)

diffs (truncated from 2739 to 300 lines):

diff -r 85a8198aa2ff -r a1a85250e897 tests/SConscript
--- a/tests/SConscript  Mon Nov 08 13:58:25 2010 -0600
+++ b/tests/SConscript  Mon Nov 08 13:58:25 2010 -0600
@@ -30,7 +30,7 @@
 #          Kevin Lim
 
 import os, signal
-import sys
+import sys, time
 import glob
 from SCons.Script.SConscript import SConsEnvironment
 
@@ -102,11 +102,26 @@
     if env['BATCH']:
         cmd = '%s -t %d %s' % (env['BATCH_CMD'], timeout, cmd)
 
+    pre_exec_time = time.time()
     status = env.Execute(env.subst(cmd, target=target, source=source))
     if status == 0:
         # M5 terminated normally.
         # Run diff on output & ref directories to find differences.
         # Exclude the stats file since we will use diff-out on that.
+
+        # NFS file systems can be annoying and not have updated yet
+        # wait until we see the file modified
+        statsdiff = os.path.join(tgt_dir, 'statsdiff')
+        m_time = 0
+        nap = 0
+        while m_time < pre_exec_time and nap < 10:
+            try:
+                m_time = os.stat(statsdiff).st_mtime
+            except OSError:
+                pass
+            time.sleep(1)
+            nap += 1
+
         outdiff = os.path.join(tgt_dir, 'outdiff')
         diffcmd = 'diff -ubrs %s ${SOURCES[2].dir} %s > %s' \
                   % (output_ignore_args, tgt_dir, outdiff)
@@ -114,7 +129,6 @@
         print "===== Output differences ====="
         print contents(outdiff)
         # Run diff-out on stats.txt file
-        statsdiff = os.path.join(tgt_dir, 'statsdiff')
         diffcmd = '$DIFFOUT ${SOURCES[2]} %s > %s' \
                   % (os.path.join(tgt_dir, 'stats.txt'), statsdiff)
         diffcmd = env.subst(diffcmd, target=target, source=source)
@@ -260,6 +274,9 @@
     if env['TARGET_ISA'] == 'sparc':
         configs += ['t1000-simple-atomic',
                     't1000-simple-timing']
+    if env['TARGET_ISA'] == 'arm':
+        configs += ['realview-simple-atomic',
+                    'realview-simple-timing']
 
 else:
     configs += ['simple-atomic', 'simple-timing', 'o3-timing', 'memtest',
diff -r 85a8198aa2ff -r a1a85250e897 tests/configs/realview-simple-atomic.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/configs/realview-simple-atomic.py   Mon Nov 08 13:58:25 2010 -0600
@@ -0,0 +1,96 @@
+# Copyright (c) 2006-2007 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 Reinhardt
+
+import m5
+from m5.objects import *
+m5.util.addToPath('../configs/common')
+import FSConfig
+
+# --------------------
+# Base L1 Cache
+# ====================
+
+class L1(BaseCache):
+    latency = '1ns'
+    block_size = 64
+    mshrs = 4
+    tgts_per_mshr = 8
+
+# ----------------------
+# Base L2 Cache
+# ----------------------
+
+class L2(BaseCache):
+    block_size = 64
+    latency = '10ns'
+    mshrs = 92
+    tgts_per_mshr = 16
+    write_buffers = 8
+
+# ---------------------
+# I/O Cache
+# ---------------------
+class IOCache(BaseCache):
+    assoc = 8
+    block_size = 64
+    latency = '50ns'
+    mshrs = 20
+    size = '1kB'
+    tgts_per_mshr = 12
+    addr_range=AddrRange(0, size='128MB')
+    forward_snoops = False
+
+#cpu
+cpu = AtomicSimpleCPU(cpu_id=0)
+#the system
+system = FSConfig.makeLinuxArmSystem('atomic', None, False, "RealView_PBX")
+system.bridge.filter_ranges_a=[AddrRange(0, Addr.max)]
+system.bridge.filter_ranges_b=[AddrRange(0, size='128MB')]
+system.iocache = IOCache()
+system.iocache.cpu_side = system.iobus.port
+system.iocache.mem_side = system.membus.port
+
+system.cpu = cpu
+#create the l1/l2 bus
+system.toL2Bus = Bus()
+
+#connect up the l2 cache
+system.l2c = L2(size='4MB', assoc=8)
+system.l2c.cpu_side = system.toL2Bus.port
+system.l2c.mem_side = system.membus.port
+
+#connect up the cpu and l1s
+cpu.addPrivateSplitL1Caches(L1(size = '32kB', assoc = 1),
+                            L1(size = '32kB', assoc = 4))
+# connect cpu level-1 caches to shared level-2 cache
+cpu.connectMemPorts(system.toL2Bus)
+cpu.clock = '2GHz'
+
+root = Root(system=system)
+m5.ticks.setGlobalFrequency('1THz')
+
diff -r 85a8198aa2ff -r a1a85250e897 tests/configs/realview-simple-timing.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/configs/realview-simple-timing.py   Mon Nov 08 13:58:25 2010 -0600
@@ -0,0 +1,98 @@
+# Copyright (c) 2006-2007 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 Reinhardt
+
+import m5
+from m5.objects import *
+m5.util.addToPath('../configs/common')
+import FSConfig
+
+
+# --------------------
+# Base L1 Cache
+# ====================
+
+class L1(BaseCache):
+    latency = '1ns'
+    block_size = 64
+    mshrs = 4
+    tgts_per_mshr = 8
+
+# ----------------------
+# Base L2 Cache
+# ----------------------
+
+class L2(BaseCache):
+    block_size = 64
+    latency = '10ns'
+    mshrs = 92
+    tgts_per_mshr = 16
+    write_buffers = 8
+
+# ---------------------
+# I/O Cache
+# ---------------------
+class IOCache(BaseCache):
+    assoc = 8
+    block_size = 64
+    latency = '50ns'
+    mshrs = 20
+    size = '1kB'
+    tgts_per_mshr = 12
+    addr_range=AddrRange(0, size='128MB')
+    forward_snoops = False
+
+#cpu
+cpu = TimingSimpleCPU(cpu_id=0)
+#the system
+system = FSConfig.makeLinuxArmSystem('timing', None, False, "RealView_PBX")
+
+system.cpu = cpu
+#create the l1/l2 bus
+system.toL2Bus = Bus()
+system.bridge.filter_ranges_a=[AddrRange(0, Addr.max)]
+system.bridge.filter_ranges_b=[AddrRange(0, size='128MB')]
+system.iocache = IOCache()
+system.iocache.cpu_side = system.iobus.port
+system.iocache.mem_side = system.membus.port
+
+
+#connect up the l2 cache
+system.l2c = L2(size='4MB', assoc=8)
+system.l2c.cpu_side = system.toL2Bus.port
+system.l2c.mem_side = system.membus.port
+
+#connect up the cpu and l1s
+cpu.addPrivateSplitL1Caches(L1(size = '32kB', assoc = 1),
+                            L1(size = '32kB', assoc = 4))
+# connect cpu level-1 caches to shared level-2 cache
+cpu.connectMemPorts(system.toL2Bus)
+cpu.clock = '2GHz'
+
+root = Root(system=system)
+m5.ticks.setGlobalFrequency('1THz')
+
diff -r 85a8198aa2ff -r a1a85250e897 
tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini
--- a/tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini Mon Nov 08 
13:58:25 2010 -0600
+++ b/tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini Mon Nov 08 
13:58:25 2010 -0600
@@ -57,7 +57,7 @@
 env=
 errout=cerr
 euid=100
-executable=/dist/m5/cpu2000/binaries/arm/linux/gzip
+executable=/chips/pd/randd/dist/cpu2000/binaries/arm/linux/gzip
 gid=100
 input=cin
 max_stack_size=67108864
diff -r 85a8198aa2ff -r a1a85250e897 
tests/long/00.gzip/ref/arm/linux/simple-atomic/simout
--- a/tests/long/00.gzip/ref/arm/linux/simple-atomic/simout     Mon Nov 08 
13:58:25 2010 -0600
+++ b/tests/long/00.gzip/ref/arm/linux/simple-atomic/simout     Mon Nov 08 
13:58:25 2010 -0600
@@ -5,10 +5,10 @@
 All Rights Reserved
 
 
-M5 compiled Aug 24 2010 15:34:40
-M5 revision 1c687284910c 7619 default qtip round2.patch tip qbase
-M5 started Aug 24 2010 15:35:18
-M5 executing on zizzer
+M5 compiled Oct  5 2010 14:46:04
+M5 revision 878ec5a6f4d1+ 7707+ default qtip tip ext/fs_regressions.patch
+M5 started Oct  5 2010 15:01:57
+M5 executing on aus-bc2-b14
 command line: build/ARM_SE/m5.fast -d 
build/ARM_SE/tests/fast/long/00.gzip/arm/linux/simple-atomic -re tests/run.py 
build/ARM_SE/tests/fast/long/00.gzip/arm/linux/simple-atomic
 Global frequency set at 1000000000000 ticks per second
 info: Entering event queue @ 0.  Starting simulation...
diff -r 85a8198aa2ff -r a1a85250e897 
tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt
--- a/tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt  Mon Nov 08 
13:58:25 2010 -0600
+++ b/tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt  Mon Nov 08 
13:58:25 2010 -0600
@@ -1,16 +1,28 @@
 
 ---------- Begin Simulation Statistics ----------
-host_inst_rate                                4210115                       # 
Simulator instruction rate (inst/s)
-host_mem_usage                                 202336                       # 
Number of bytes of host memory used
-host_seconds                                   142.65                       # 
Real time elapsed on the host
-host_tick_rate                             2105134486                       # 
Simulator tick rate (ticks/s)
+host_inst_rate                                4265359                       # 
Simulator instruction rate (inst/s)
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to