Benchmarks.py revision 8088:ac1bd3d1aa54
112647Santhony.gutierrez@amd.com# Copyright (c) 2006-2007 The Regents of The University of Michigan
212647Santhony.gutierrez@amd.com# All rights reserved.
311308Santhony.gutierrez@amd.com#
412647Santhony.gutierrez@amd.com# Redistribution and use in source and binary forms, with or without
511308Santhony.gutierrez@amd.com# modification, are permitted provided that the following conditions are
612647Santhony.gutierrez@amd.com# met: redistributions of source code must retain the above copyright
712647Santhony.gutierrez@amd.com# notice, this list of conditions and the following disclaimer;
811308Santhony.gutierrez@amd.com# redistributions in binary form must reproduce the above copyright
912647Santhony.gutierrez@amd.com# notice, this list of conditions and the following disclaimer in the
1012647Santhony.gutierrez@amd.com# documentation and/or other materials provided with the distribution;
1111308Santhony.gutierrez@amd.com# neither the name of the copyright holders nor the names of its
1212647Santhony.gutierrez@amd.com# contributors may be used to endorse or promote products derived from
1312647Santhony.gutierrez@amd.com# this software without specific prior written permission.
1412647Santhony.gutierrez@amd.com#
1511308Santhony.gutierrez@amd.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1612647Santhony.gutierrez@amd.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1712647Santhony.gutierrez@amd.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1812647Santhony.gutierrez@amd.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1911308Santhony.gutierrez@amd.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2012647Santhony.gutierrez@amd.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2112647Santhony.gutierrez@amd.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2212647Santhony.gutierrez@amd.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2312647Santhony.gutierrez@amd.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2412647Santhony.gutierrez@amd.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2512647Santhony.gutierrez@amd.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2612647Santhony.gutierrez@amd.com#
2712647Santhony.gutierrez@amd.com# Authors: Ali Saidi
2812647Santhony.gutierrez@amd.com
2912647Santhony.gutierrez@amd.comfrom SysPaths import script, disk, binary
3012647Santhony.gutierrez@amd.comfrom os import environ as env
3111308Santhony.gutierrez@amd.comfrom m5.defines import buildEnv
3212647Santhony.gutierrez@amd.com
3311308Santhony.gutierrez@amd.comclass SysConfig:
3411308Santhony.gutierrez@amd.com    def __init__(self, script=None, mem=None, disk=None):
3511308Santhony.gutierrez@amd.com        self.scriptname = script
3611308Santhony.gutierrez@amd.com        self.diskname = disk
3711308Santhony.gutierrez@amd.com        self.memsize = mem
3813400Sodanrc@yahoo.com.br
3911308Santhony.gutierrez@amd.com    def script(self):
4011308Santhony.gutierrez@amd.com        if self.scriptname:
4113400Sodanrc@yahoo.com.br            return script(self.scriptname)
4213400Sodanrc@yahoo.com.br        else:
4311670Sandreas.hansson@arm.com            return ''
4411308Santhony.gutierrez@amd.com
4511308Santhony.gutierrez@amd.com    def mem(self):
4611308Santhony.gutierrez@amd.com        if self.memsize:
4711308Santhony.gutierrez@amd.com            return self.memsize
4811308Santhony.gutierrez@amd.com        else:
4911308Santhony.gutierrez@amd.com            return '128MB'
5011308Santhony.gutierrez@amd.com
5111308Santhony.gutierrez@amd.com    def disk(self):
5211308Santhony.gutierrez@amd.com        if self.diskname:
5311308Santhony.gutierrez@amd.com            return disk(self.diskname)
5411308Santhony.gutierrez@amd.com        elif buildEnv['TARGET_ISA'] == 'alpha':
5511308Santhony.gutierrez@amd.com            return env.get('LINUX_IMAGE', disk('linux-latest.img'))
5611308Santhony.gutierrez@amd.com        elif buildEnv['TARGET_ISA'] == 'x86':
5711308Santhony.gutierrez@amd.com            return env.get('LINUX_IMAGE', disk('x86root.img'))
5811308Santhony.gutierrez@amd.com        else:
5911308Santhony.gutierrez@amd.com            print "Don't know what default disk image to use for ISA %s" % \
6011308Santhony.gutierrez@amd.com                buildEnv['TARGET_ISA']
6111308Santhony.gutierrez@amd.com            sys.exit(1)
6211308Santhony.gutierrez@amd.com
6311308Santhony.gutierrez@amd.com# Benchmarks are defined as a key in a dict which is a list of SysConfigs
6411308Santhony.gutierrez@amd.com# The first defined machine is the test system, the others are driving systems
6511308Santhony.gutierrez@amd.com
6611308Santhony.gutierrez@amd.comBenchmarks = {
6711308Santhony.gutierrez@amd.com    'PovrayBench':  [SysConfig('povray-bench.rcS', '512MB', 'povray.img')],
6811308Santhony.gutierrez@amd.com    'PovrayAutumn': [SysConfig('povray-autumn.rcS', '512MB', 'povray.img')],
6911308Santhony.gutierrez@amd.com
7011308Santhony.gutierrez@amd.com    'NetperfStream':    [SysConfig('netperf-stream-client.rcS'),
7111308Santhony.gutierrez@amd.com                         SysConfig('netperf-server.rcS')],
7211308Santhony.gutierrez@amd.com    'NetperfStreamUdp': [SysConfig('netperf-stream-udp-client.rcS'),
7311308Santhony.gutierrez@amd.com                         SysConfig('netperf-server.rcS')],
7411308Santhony.gutierrez@amd.com    'NetperfUdpLocal':  [SysConfig('netperf-stream-udp-local.rcS')],
7511308Santhony.gutierrez@amd.com    'NetperfStreamNT':  [SysConfig('netperf-stream-nt-client.rcS'),
7611308Santhony.gutierrez@amd.com                         SysConfig('netperf-server.rcS')],
7711308Santhony.gutierrez@amd.com    'NetperfMaerts':    [SysConfig('netperf-maerts-client.rcS'),
7811308Santhony.gutierrez@amd.com                         SysConfig('netperf-server.rcS')],
7911308Santhony.gutierrez@amd.com    'SurgeStandard':    [SysConfig('surge-server.rcS', '512MB'),
8011308Santhony.gutierrez@amd.com                         SysConfig('surge-client.rcS', '256MB')],
8111308Santhony.gutierrez@amd.com    'SurgeSpecweb':     [SysConfig('spec-surge-server.rcS', '512MB'),
8211308Santhony.gutierrez@amd.com                         SysConfig('spec-surge-client.rcS', '256MB')],
8311308Santhony.gutierrez@amd.com    'Nhfsstone':        [SysConfig('nfs-server-nhfsstone.rcS', '512MB'),
8411308Santhony.gutierrez@amd.com                         SysConfig('nfs-client-nhfsstone.rcS')],
8511308Santhony.gutierrez@amd.com    'Nfs':              [SysConfig('nfs-server.rcS', '900MB'),
8611308Santhony.gutierrez@amd.com                         SysConfig('nfs-client-dbench.rcS')],
8711308Santhony.gutierrez@amd.com    'NfsTcp':           [SysConfig('nfs-server.rcS', '900MB'),
8811308Santhony.gutierrez@amd.com                         SysConfig('nfs-client-tcp.rcS')],
8911308Santhony.gutierrez@amd.com    'IScsiInitiator':   [SysConfig('iscsi-client.rcS', '512MB'),
9011308Santhony.gutierrez@amd.com                         SysConfig('iscsi-server.rcS', '512MB')],
9111308Santhony.gutierrez@amd.com    'IScsiTarget':      [SysConfig('iscsi-server.rcS', '512MB'),
9211308Santhony.gutierrez@amd.com                         SysConfig('iscsi-client.rcS', '512MB')],
9311308Santhony.gutierrez@amd.com    'Validation':       [SysConfig('iscsi-server.rcS', '512MB'),
9411308Santhony.gutierrez@amd.com                         SysConfig('iscsi-client.rcS', '512MB')],
9511308Santhony.gutierrez@amd.com    'Ping':             [SysConfig('ping-server.rcS',),
9611308Santhony.gutierrez@amd.com                         SysConfig('ping-client.rcS')],
9711308Santhony.gutierrez@amd.com
9811308Santhony.gutierrez@amd.com    'ValAccDelay':      [SysConfig('devtime.rcS', '512MB')],
9911308Santhony.gutierrez@amd.com    'ValAccDelay2':     [SysConfig('devtimewmr.rcS', '512MB')],
10011308Santhony.gutierrez@amd.com    'ValMemLat':        [SysConfig('micro_memlat.rcS', '512MB')],
10111308Santhony.gutierrez@amd.com    'ValMemLat2MB':     [SysConfig('micro_memlat2mb.rcS', '512MB')],
10211308Santhony.gutierrez@amd.com    'ValMemLat8MB':     [SysConfig('micro_memlat8mb.rcS', '512MB')],
10311308Santhony.gutierrez@amd.com    'ValMemLat':        [SysConfig('micro_memlat8.rcS', '512MB')],
10411308Santhony.gutierrez@amd.com    'ValTlbLat':        [SysConfig('micro_tlblat.rcS', '512MB')],
10511308Santhony.gutierrez@amd.com    'ValSysLat':        [SysConfig('micro_syscall.rcS', '512MB')],
10611308Santhony.gutierrez@amd.com    'ValCtxLat':        [SysConfig('micro_ctx.rcS', '512MB')],
10711308Santhony.gutierrez@amd.com    'ValStream':        [SysConfig('micro_stream.rcS', '512MB')],
10811308Santhony.gutierrez@amd.com    'ValStreamScale':   [SysConfig('micro_streamscale.rcS', '512MB')],
10911308Santhony.gutierrez@amd.com    'ValStreamCopy':    [SysConfig('micro_streamcopy.rcS', '512MB')],
11011308Santhony.gutierrez@amd.com
11111308Santhony.gutierrez@amd.com    'MutexTest':        [SysConfig('mutex-test.rcS', '128MB')],
11211308Santhony.gutierrez@amd.com
11311308Santhony.gutierrez@amd.com    'bnAn': [SysConfig('/z/saidi/work/m5.newmem.head/configs/boot/bn-app.rcS',
11411308Santhony.gutierrez@amd.com                       '128MB', '/z/saidi/work/bottleneck/bnimg.img')]
11511308Santhony.gutierrez@amd.com}
11611308Santhony.gutierrez@amd.com
11711308Santhony.gutierrez@amd.combenchs = Benchmarks.keys()
11811308Santhony.gutierrez@amd.combenchs.sort()
11911308Santhony.gutierrez@amd.comDefinedBenchmarks = ", ".join(benchs)
12011308Santhony.gutierrez@amd.com