| # 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. |
| |
| from common.SysPaths import script, disk, binary |
| from os import environ as env |
| from m5.defines import buildEnv |
| |
| |
| class SysConfig: |
| def __init__( |
| self, script=None, mem=None, disks=None, rootdev=None, os_type="linux" |
| ): |
| self.scriptname = script |
| self.disknames = disks |
| self.memsize = mem |
| self.root = rootdev |
| self.ostype = os_type |
| |
| def script(self): |
| if self.scriptname: |
| return script(self.scriptname) |
| else: |
| return "" |
| |
| def mem(self): |
| if self.memsize: |
| return self.memsize |
| else: |
| return "128MB" |
| |
| def disks(self): |
| if self.disknames: |
| return [disk(diskname) for diskname in self.disknames] |
| else: |
| return [] |
| |
| def rootdev(self): |
| if self.root: |
| return self.root |
| else: |
| return "/dev/sda1" |
| |
| def os_type(self): |
| return self.ostype |
| |
| |
| # Benchmarks are defined as a key in a dict which is a list of SysConfigs |
| # The first defined machine is the test system, the others are driving systems |
| |
| Benchmarks = { |
| "PovrayBench": [SysConfig("povray-bench.rcS", "512MB", ["povray.img"])], |
| "PovrayAutumn": [SysConfig("povray-autumn.rcS", "512MB", ["povray.img"])], |
| "NetperfStream": [ |
| SysConfig("netperf-stream-client.rcS"), |
| SysConfig("netperf-server.rcS"), |
| ], |
| "NetperfStreamUdp": [ |
| SysConfig("netperf-stream-udp-client.rcS"), |
| SysConfig("netperf-server.rcS"), |
| ], |
| "NetperfUdpLocal": [SysConfig("netperf-stream-udp-local.rcS")], |
| "NetperfStreamNT": [ |
| SysConfig("netperf-stream-nt-client.rcS"), |
| SysConfig("netperf-server.rcS"), |
| ], |
| "NetperfMaerts": [ |
| SysConfig("netperf-maerts-client.rcS"), |
| SysConfig("netperf-server.rcS"), |
| ], |
| "SurgeStandard": [ |
| SysConfig("surge-server.rcS", "512MB"), |
| SysConfig("surge-client.rcS", "256MB"), |
| ], |
| "SurgeSpecweb": [ |
| SysConfig("spec-surge-server.rcS", "512MB"), |
| SysConfig("spec-surge-client.rcS", "256MB"), |
| ], |
| "Nhfsstone": [ |
| SysConfig("nfs-server-nhfsstone.rcS", "512MB"), |
| SysConfig("nfs-client-nhfsstone.rcS"), |
| ], |
| "Nfs": [ |
| SysConfig("nfs-server.rcS", "900MB"), |
| SysConfig("nfs-client-dbench.rcS"), |
| ], |
| "NfsTcp": [ |
| SysConfig("nfs-server.rcS", "900MB"), |
| SysConfig("nfs-client-tcp.rcS"), |
| ], |
| "IScsiInitiator": [ |
| SysConfig("iscsi-client.rcS", "512MB"), |
| SysConfig("iscsi-server.rcS", "512MB"), |
| ], |
| "IScsiTarget": [ |
| SysConfig("iscsi-server.rcS", "512MB"), |
| SysConfig("iscsi-client.rcS", "512MB"), |
| ], |
| "Validation": [ |
| SysConfig("iscsi-server.rcS", "512MB"), |
| SysConfig("iscsi-client.rcS", "512MB"), |
| ], |
| "Ping": [SysConfig("ping-server.rcS"), SysConfig("ping-client.rcS")], |
| "ValAccDelay": [SysConfig("devtime.rcS", "512MB")], |
| "ValAccDelay2": [SysConfig("devtimewmr.rcS", "512MB")], |
| "ValMemLat": [SysConfig("micro_memlat.rcS", "512MB")], |
| "ValMemLat2MB": [SysConfig("micro_memlat2mb.rcS", "512MB")], |
| "ValMemLat8MB": [SysConfig("micro_memlat8mb.rcS", "512MB")], |
| "ValMemLat": [SysConfig("micro_memlat8.rcS", "512MB")], |
| "ValTlbLat": [SysConfig("micro_tlblat.rcS", "512MB")], |
| "ValSysLat": [SysConfig("micro_syscall.rcS", "512MB")], |
| "ValCtxLat": [SysConfig("micro_ctx.rcS", "512MB")], |
| "ValStream": [SysConfig("micro_stream.rcS", "512MB")], |
| "ValStreamScale": [SysConfig("micro_streamscale.rcS", "512MB")], |
| "ValStreamCopy": [SysConfig("micro_streamcopy.rcS", "512MB")], |
| "MutexTest": [SysConfig("mutex-test.rcS", "128MB")], |
| "ArmAndroid-GB": [ |
| SysConfig( |
| "null.rcS", |
| "256MB", |
| ["ARMv7a-Gingerbread-Android.SMP.mouse.nolock.clean.img"], |
| None, |
| "android-gingerbread", |
| ) |
| ], |
| "bbench-gb": [ |
| SysConfig( |
| "bbench-gb.rcS", |
| "256MB", |
| ["ARMv7a-Gingerbread-Android.SMP.mouse.nolock.img"], |
| None, |
| "android-gingerbread", |
| ) |
| ], |
| "ArmAndroid-ICS": [ |
| SysConfig( |
| "null.rcS", |
| "256MB", |
| ["ARMv7a-ICS-Android.SMP.nolock.clean.img"], |
| None, |
| "android-ics", |
| ) |
| ], |
| "bbench-ics": [ |
| SysConfig( |
| "bbench-ics.rcS", |
| "256MB", |
| ["ARMv7a-ICS-Android.SMP.nolock.img"], |
| None, |
| "android-ics", |
| ) |
| ], |
| } |
| |
| benchs = list(Benchmarks.keys()) |
| benchs.sort() |
| DefinedBenchmarks = ", ".join(benchs) |