blob: d98d4d59d449bc7f88b256a3fdeccc2f5612e9be [file] [log] [blame]
mblighb8a14e32006-05-06 00:17:35 +00001import test, pickle
mblighf4c35322006-03-13 01:01:10 +00002from autotest_utils import *
3
apw7a0d5782006-04-21 14:21:17 +00004class kernbench(test.test):
mbligh96aee2a2006-05-03 16:28:26 +00005 version = 1
6
mblighb8a14e32006-05-06 00:17:35 +00007 def setup(self):
mbligh4f6243c2006-08-29 06:15:15 +00008 # http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2
mblighd4bff322006-08-31 16:58:18 +00009 if (os.path.exists(self.bindir + '/linux-2.6.14.tar.bz2')):
10 tarball = self.bindir + '/linux-2.6.14.tar.bz2'
11 else:
12 tarball = '/usr/local/src/linux-2.6.14.tar.bz2'
mbligh1e8858e2006-11-24 22:18:35 +000013 kernel = self.job.kernel(tarball, self.tmpdir)
mbligh43cd6d02006-08-31 14:38:09 +000014 kernel.config('')
mblighb8a14e32006-05-06 00:17:35 +000015 # have to save this off, as we might use it in another run
16 kernel.pickle_dump(self.srcdir + '/.pickle')
mblighf4c35322006-03-13 01:01:10 +000017
18
mbligh82641862006-04-23 06:21:36 +000019 def execute(self, iterations = 1, threads = 2 * count_cpus()):
mblighb8a14e32006-05-06 00:17:35 +000020 kernel = pickle.load(open(self.srcdir + '/.pickle', 'r'))
mbligh82641862006-04-23 06:21:36 +000021 print "kernbench x %d: %d threads" % (iterations, threads)
22
mblighb8a14e32006-05-06 00:17:35 +000023 kernel.build_timed(threads) # warmup run
mblighf4c35322006-03-13 01:01:10 +000024 for i in range(1, iterations+1):
mblighb8a14e32006-05-06 00:17:35 +000025 logfile = self.resultsdir+'/time.%d' % i
26 kernel.build_timed(threads, logfile)
mblighf4c35322006-03-13 01:01:10 +000027
mbligh72905562006-05-25 01:30:49 +000028 # Do a profiling run if necessary
29 profilers = self.job.profilers
30 if profilers.present():
31 profilers.start(self)
32 logfile = self.resultsdir+'/time.profile'
33 kernel.build_timed(threads, logfile)
34 profilers.stop(self)
35 profilers.report(self)
36
mblighb8a14e32006-05-06 00:17:35 +000037 kernel.clean() # Don't leave litter lying around
38 os.chdir(self.resultsdir)
mbligh39aa03c2006-11-25 23:11:22 +000039 system("grep -h elapsed time.* > time")