Benchmarks.py revision 3304
112771Sqtt2@cornell.edu# Copyright (c) 2006 The Regents of The University of Michigan
212771Sqtt2@cornell.edu# All rights reserved.
312771Sqtt2@cornell.edu#
412771Sqtt2@cornell.edu# Redistribution and use in source and binary forms, with or without
512771Sqtt2@cornell.edu# modification, are permitted provided that the following conditions are
612771Sqtt2@cornell.edu# met: redistributions of source code must retain the above copyright
712771Sqtt2@cornell.edu# notice, this list of conditions and the following disclaimer;
812771Sqtt2@cornell.edu# redistributions in binary form must reproduce the above copyright
912771Sqtt2@cornell.edu# notice, this list of conditions and the following disclaimer in the
1012771Sqtt2@cornell.edu# documentation and/or other materials provided with the distribution;
1112771Sqtt2@cornell.edu# neither the name of the copyright holders nor the names of its
1212771Sqtt2@cornell.edu# contributors may be used to endorse or promote products derived from
1312771Sqtt2@cornell.edu# this software without specific prior written permission.
1412771Sqtt2@cornell.edu#
1512771Sqtt2@cornell.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1612771Sqtt2@cornell.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1712771Sqtt2@cornell.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1812771Sqtt2@cornell.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1912771Sqtt2@cornell.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2012771Sqtt2@cornell.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2112771Sqtt2@cornell.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2212771Sqtt2@cornell.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2312771Sqtt2@cornell.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2412771Sqtt2@cornell.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2512771Sqtt2@cornell.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2612771Sqtt2@cornell.edu#
2712771Sqtt2@cornell.edu# Authors: Ali Saidi
2812771Sqtt2@cornell.edu
2912771Sqtt2@cornell.edufrom SysPaths import *
3012771Sqtt2@cornell.edu
3112771Sqtt2@cornell.educlass SysConfig:
3212771Sqtt2@cornell.edu    def __init__(self, script=None, mem=None, disk=None):
3312771Sqtt2@cornell.edu        self.scriptname = script
3412771Sqtt2@cornell.edu        self.diskname = disk
3512771Sqtt2@cornell.edu        self.memsize = mem
3612771Sqtt2@cornell.edu
3712771Sqtt2@cornell.edu    def script(self):
3812771Sqtt2@cornell.edu        if self.scriptname:
3912771Sqtt2@cornell.edu            return script(self.scriptname)
4012771Sqtt2@cornell.edu        else:
4112771Sqtt2@cornell.edu            return ''
4212771Sqtt2@cornell.edu
4312771Sqtt2@cornell.edu    def mem(self):
4412771Sqtt2@cornell.edu        if self.memsize:
4512771Sqtt2@cornell.edu            return self.memsize
4612771Sqtt2@cornell.edu        else:
4712771Sqtt2@cornell.edu            return '128MB'
4812771Sqtt2@cornell.edu
4912771Sqtt2@cornell.edu    def disk(self):
5012771Sqtt2@cornell.edu        if self.diskname:
5112771Sqtt2@cornell.edu            return disk(self.diskname)
5212771Sqtt2@cornell.edu        else:
5312771Sqtt2@cornell.edu            return env.get('LINUX_IMAGE', disk('linux-latest.img'))
5412771Sqtt2@cornell.edu
5512771Sqtt2@cornell.edu# Benchmarks are defined as a key in a dict which is a list of SysConfigs
5612771Sqtt2@cornell.edu# The first defined machine is the test system, the others are driving systems
5712771Sqtt2@cornell.edu
5812771Sqtt2@cornell.eduBenchmarks = {
5912771Sqtt2@cornell.edu    'PovrayBench':  [SysConfig('povray-bench.rcS', '512MB', 'povray.img')],
6012771Sqtt2@cornell.edu    'PovrayAutumn': [SysConfig('povray-autumn.rcS', '512MB', 'povray.img')],
6112771Sqtt2@cornell.edu
6212771Sqtt2@cornell.edu    'NetperfStream':	[SysConfig('netperf-stream-client.rcS'),
6312771Sqtt2@cornell.edu                         SysConfig('netperf-server.rcS')],
6412771Sqtt2@cornell.edu    'NetperfStreamNT':	[SysConfig('netperf-stream-nt-client.rcS'),
6512771Sqtt2@cornell.edu                         SysConfig('netperf-server.rcS')],
6612771Sqtt2@cornell.edu    'NetperfMaerts':	[SysConfig('netperf-maerts-client.rcS'),
6712771Sqtt2@cornell.edu                         SysConfig('netperf-server.rcS')],
6812771Sqtt2@cornell.edu    'SurgeStandard':	[SysConfig('surge-server.rcS', '512MB'),
6912771Sqtt2@cornell.edu                         SysConfig('surge-client.rcS', '256MB')],
7012771Sqtt2@cornell.edu    'SurgeSpecweb':	[SysConfig('spec-surge-server.rcS', '512MB'),
7112771Sqtt2@cornell.edu                         SysConfig('spec-surge-client.rcS', '256MB')],
7212771Sqtt2@cornell.edu    'Nhfsstone':	[SysConfig('nfs-server-nhfsstone.rcS', '512MB'),
7312771Sqtt2@cornell.edu                         SysConfig('nfs-client-nhfsstone.rcS')],
7412771Sqtt2@cornell.edu    'Nfs':		[SysConfig('nfs-server.rcS', '900MB'),
7512771Sqtt2@cornell.edu                         SysConfig('nfs-client-dbench.rcS')],
7612771Sqtt2@cornell.edu    'NfsTcp':		[SysConfig('nfs-server.rcS', '900MB'),
7712771Sqtt2@cornell.edu                         SysConfig('nfs-client-tcp.rcS')],
7812771Sqtt2@cornell.edu    'IScsiInitiator':	[SysConfig('iscsi-client.rcS', '512MB'),
7912771Sqtt2@cornell.edu                         SysConfig('iscsi-server.rcS', '512MB')],
8012771Sqtt2@cornell.edu    'IScsiTarget':	[SysConfig('iscsi-server.rcS', '512MB'),
8112771Sqtt2@cornell.edu                         SysConfig('iscsi-client.rcS', '512MB')],
8212771Sqtt2@cornell.edu    'Validation':	[SysConfig('iscsi-server.rcS', '512MB'),
8312771Sqtt2@cornell.edu                         SysConfig('iscsi-client.rcS', '512MB')],
8412771Sqtt2@cornell.edu    'Ping':		[SysConfig('ping-server.rcS',),
8512771Sqtt2@cornell.edu                         SysConfig('ping-client.rcS')],
8612771Sqtt2@cornell.edu
8712771Sqtt2@cornell.edu    'ValAccDelay':	[SysConfig('devtime.rcS', '512MB')],
8812771Sqtt2@cornell.edu    'ValAccDelay2':	[SysConfig('devtimewmr.rcS', '512MB')],
8912771Sqtt2@cornell.edu    'ValMemLat':	[SysConfig('micro_memlat.rcS', '512MB')],
9012771Sqtt2@cornell.edu    'ValMemLat2MB':	[SysConfig('micro_memlat2mb.rcS', '512MB')],
9112771Sqtt2@cornell.edu    'ValMemLat8MB':	[SysConfig('micro_memlat8mb.rcS', '512MB')],
9212771Sqtt2@cornell.edu    'ValMemLat':	[SysConfig('micro_memlat8.rcS', '512MB')],
9312771Sqtt2@cornell.edu    'ValTlbLat':	[SysConfig('micro_tlblat.rcS', '512MB')],
9412771Sqtt2@cornell.edu    'ValSysLat':	[SysConfig('micro_syscall.rcS', '512MB')],
9512771Sqtt2@cornell.edu    'ValCtxLat':	[SysConfig('micro_ctx.rcS', '512MB')],
9612771Sqtt2@cornell.edu    'ValStream':	[SysConfig('micro_stream.rcS', '512MB')],
9712771Sqtt2@cornell.edu    'ValStreamScale':	[SysConfig('micro_streamscale.rcS', '512MB')],
9812771Sqtt2@cornell.edu    'ValStreamCopy':	[SysConfig('micro_streamcopy.rcS', '512MB')],
9912771Sqtt2@cornell.edu
10012771Sqtt2@cornell.edu    'bnAn': [SysConfig('/z/saidi/work/m5.newmem.head/configs/boot/bn-app.rcS',
10112771Sqtt2@cornell.edu                       '128MB', '/z/saidi/work/bottleneck/bnimg.img')]
10212771Sqtt2@cornell.edu}
10312771Sqtt2@cornell.edu
10412771Sqtt2@cornell.edubenchs = Benchmarks.keys()
10512771Sqtt2@cornell.edubenchs.sort()
10612771Sqtt2@cornell.eduDefinedBenchmarks = ", ".join(benchs)
10712771Sqtt2@cornell.edu