From patchwork Wed Apr 7 01:57:11 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lucas Meneghel Rodrigues X-Patchwork-Id: 90910 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o371vM6I011187 for ; Wed, 7 Apr 2010 01:57:22 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932456Ab0DGB5U (ORCPT ); Tue, 6 Apr 2010 21:57:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:19069 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932412Ab0DGB5T (ORCPT ); Tue, 6 Apr 2010 21:57:19 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o371vId1017442 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Apr 2010 21:57:18 -0400 Received: from localhost.localdomain (vpn-8-241.rdu.redhat.com [10.11.8.241]) by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o371vE3q022870; Tue, 6 Apr 2010 21:57:15 -0400 From: Lucas Meneghel Rodrigues To: autotest@test.kernel.org Cc: kvm@vger.kernel.org, dlaor@redhat.com, mgoldish@redhat.com, nsprei@redhat.com, Lucas Meneghel Rodrigues , Jes Sorensen Subject: [PATCH] [RFC] KVM test: Introduce sample performance test set Date: Tue, 6 Apr 2010 22:57:11 -0300 Message-Id: <1270605431-4899-1-git-send-email-lmr@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Wed, 07 Apr 2010 01:57:31 +0000 (UTC) diff --git a/client/tests/kvm/autotest_control/hackbench.control b/client/tests/kvm/autotest_control/hackbench.control index 5b94865..3248b26 100644 --- a/client/tests/kvm/autotest_control/hackbench.control +++ b/client/tests/kvm/autotest_control/hackbench.control @@ -1,4 +1,4 @@ -AUTHOR = "Sudhir Kumar " +AUTHOR = "ncrao@google.com (Nikhil Rao)" NAME = "Hackbench" TIME = "SHORT" TEST_CLASS = "Kernel" @@ -6,8 +6,10 @@ TEST_CATEGORY = "Benchmark" TEST_TYPE = "client" DOC = """ -Hackbench is a benchmark which measures the performance, overhead and +Hackbench is a benchmark for measuring the performance, overhead and scalability of the Linux scheduler. +hackbench.c copied from: +http://people.redhat.com/~mingo/cfs-scheduler/tools/hackbench.c """ job.run_test('hackbench') diff --git a/client/tests/kvm/autotest_control/iozone.control b/client/tests/kvm/autotest_control/iozone.control new file mode 100644 index 0000000..17d9be2 --- /dev/null +++ b/client/tests/kvm/autotest_control/iozone.control @@ -0,0 +1,18 @@ +AUTHOR = "Ying Tao " +TIME = "MEDIUM" +NAME = "IOzone" +TEST_TYPE = "client" +TEST_CLASS = "Kernel" +TEST_CATEGORY = "Benchmark" + +DOC = """ +Iozone is useful for performing a broad filesystem analysis of a vendors +computer platform. The benchmark tests file I/O performance for the following +operations: + Read, write, re-read, re-write, read backwards, read strided, fread, + fwrite, random read, pread ,mmap, aio_read, aio_write + +For more information see http://www.iozone.org +""" + +job.run_test('iozone') diff --git a/client/tests/kvm/autotest_control/kernbench.control b/client/tests/kvm/autotest_control/kernbench.control index 76a546e..9fc5da7 100644 --- a/client/tests/kvm/autotest_control/kernbench.control +++ b/client/tests/kvm/autotest_control/kernbench.control @@ -1,4 +1,4 @@ -AUTHOR = "Sudhir Kumar " +AUTHOR = "mbligh@google.com (Martin Bligh)" NAME = "Kernbench" TIME = "SHORT" TEST_CLASS = "Kernel" diff --git a/client/tests/kvm/autotest_control/lmbench.control b/client/tests/kvm/autotest_control/lmbench.control new file mode 100644 index 0000000..95b47fb --- /dev/null +++ b/client/tests/kvm/autotest_control/lmbench.control @@ -0,0 +1,33 @@ +NAME = "lmbench" +AUTHOR = "Martin Bligh " +TIME = "MEDIUM" +TEST_CATEGORY = "BENCHMARK" +TEST_CLASS = "KERNEL" +TEST_TYPE = "CLIENT" +DOC = """ +README for lmbench 2alpha8 net release. + +To run the benchmark, you should be able to say: + + cd src + make results + +If you want to see how you did compared to the other system results +included here, say + + make see + +Be warned that many of these benchmarks are sensitive to other things +being run on the system, mainly from CPU cache and CPU cycle effects. +So make sure your screen saver is not running, etc. + +It's a good idea to do several runs and compare the output like so + + make results + make rerun + make rerun + make rerun + cd Results && make LIST=/* +""" + +job.run_test('lmbench') diff --git a/client/tests/kvm/autotest_control/performance.control b/client/tests/kvm/autotest_control/performance.control new file mode 100644 index 0000000..5bc0b28 --- /dev/null +++ b/client/tests/kvm/autotest_control/performance.control @@ -0,0 +1,123 @@ +def step_init(): + job.next_step('step0') + job.next_step('step1') + job.next_step('step2') + job.next_step('step3') + job.next_step('step4') + job.next_step('step5') + job.next_step('step6') + +def step0(): + AUTHOR = "Martin Bligh " + NAME = "AIM 7" + TIME = "MEDIUM" + TEST_CLASS = "Kernel" + TEST_CATEGORY = "Benchmark" + TEST_TYPE = "Client" + DOC = """Run the Open Source AIM 7 benchmark from +http://sourceforge.net/project/showfiles.php?group_id=71019""" + job.run_test('reaim') + +def step1(): + AUTHOR = "ncrao@google.com (Nikhil Rao)" + NAME = "Hackbench" + TIME = "SHORT" + TEST_CLASS = "Kernel" + TEST_CATEGORY = "Benchmark" + TEST_TYPE = "client" + DOC = """ +Hackbench is a benchmark for measuring the performance, overhead and +scalability of the Linux scheduler. + +hackbench.c copied from: +http://people.redhat.com/~mingo/cfs-scheduler/tools/hackbench.c +""" + job.run_test('hackbench') + +def step2(): + AUTHOR = "Ying Tao " + TIME = "MEDIUM" + NAME = "IOzone" + TEST_TYPE = "client" + TEST_CLASS = "Kernel" + TEST_CATEGORY = "Benchmark" + DOC = """ +Iozone is useful for performing a broad filesystem analysis of a vendors +computer platform. The benchmark tests file I/O performance for the following +operations: + Read, write, re-read, re-write, read backwards, read strided, fread, + fwrite, random read, pread ,mmap, aio_read, aio_write + +For more information see http://www.iozone.org +""" + job.run_test('iozone') + +def step3(): + AUTHOR = "mbligh@google.com (Martin Bligh)" + NAME = "Kernbench" + TIME = "SHORT" + TEST_CLASS = "Kernel" + TEST_CATEGORY = "Benchmark" + TEST_TYPE = "client" + DOC = """ +A standard CPU benchmark. Runs a kernel compile and measures the performance. +""" + job.run_test('kernbench') + +def step4(): + NAME = "lmbench" + AUTHOR = "Martin Bligh " + TIME = "MEDIUM" + TEST_CATEGORY = "BENCHMARK" + TEST_CLASS = "KERNEL" + TEST_TYPE = "CLIENT" + DOC = """ +README for lmbench 2alpha8 net release. + +To run the benchmark, you should be able to say: + + cd src + make results + +If you want to see how you did compared to the other system results +included here, say + + make see + +Be warned that many of these benchmarks are sensitive to other things +being run on the system, mainly from CPU cache and CPU cycle effects. +So make sure your screen saver is not running, etc. + +It's a good idea to do several runs and compare the output like so + + make results + make rerun + make rerun + make rerun + cd Results && make LIST=/* +""" + job.run_test('lmbench') + +def step5(): + NAME = 'Threaded IO Bench' + AUTHOR = 'walkinair@cn.ibm.com' + TIME = 'MEDIUM' + TEST_CLASS = 'IO' + TEST_CATEGORY = 'Benchmark' + TEST_TYPE = 'client' + DOC = """ +Performs threaded I/O benchmarks. +""" + job.run_test('tiobench', dir='/mnt') + +def step6(): + NAME = 'Unix Bench' + AUTHOR = 'adrianbg@google.com' + TIME = 'MEDIUM' + TEST_CLASS = 'Kernel' + TEST_CATEGORY = 'Benchmark' + TEST_TYPE = 'client' + DOC = """ +Performs the standard Unixbench suite of tests (v4.1). +""" + job.run_test('unixbench') diff --git a/client/tests/kvm/autotest_control/reaim.control b/client/tests/kvm/autotest_control/reaim.control new file mode 100644 index 0000000..b58bab6 --- /dev/null +++ b/client/tests/kvm/autotest_control/reaim.control @@ -0,0 +1,11 @@ +AUTHOR = "Martin Bligh " +NAME = "AIM 7" +TIME = "MEDIUM" +TEST_CLASS = "Kernel" +TEST_CATEGORY = "Benchmark" +TEST_TYPE = "Client" + +DOC = """Run the Open Source AIM 7 benchmark from +http://sourceforge.net/project/showfiles.php?group_id=71019""" + +job.run_test('reaim') diff --git a/client/tests/kvm/autotest_control/tiobench.control b/client/tests/kvm/autotest_control/tiobench.control new file mode 100644 index 0000000..ee806cf --- /dev/null +++ b/client/tests/kvm/autotest_control/tiobench.control @@ -0,0 +1,12 @@ +NAME = 'Threaded IO Bench' +AUTHOR = 'walkinair@cn.ibm.com' +TIME = 'MEDIUM' +TEST_CLASS = 'IO' +TEST_CATEGORY = 'Benchmark' +TEST_TYPE = 'client' + +DOC = """ +Performs threaded I/O benchmarks. +""" + +job.run_test('tiobench', dir='/mnt') diff --git a/client/tests/kvm/autotest_control/unixbench.control b/client/tests/kvm/autotest_control/unixbench.control new file mode 100644 index 0000000..6603e19 --- /dev/null +++ b/client/tests/kvm/autotest_control/unixbench.control @@ -0,0 +1,11 @@ +NAME = 'Unix Bench' +AUTHOR = 'adrianbg@google.com' +TIME = 'MEDIUM' +TEST_CLASS = 'Kernel' +TEST_CATEGORY = 'Benchmark' +TEST_TYPE = 'client' +DOC = """ +Performs the standard Unixbench suite of tests (v4.1). +""" + +job.run_test('unixbench') diff --git a/client/tests/kvm/tests.cfg.sample b/client/tests/kvm/tests.cfg.sample index 7b8e791..f542e4b 100644 --- a/client/tests/kvm/tests.cfg.sample +++ b/client/tests/kvm/tests.cfg.sample @@ -79,6 +79,19 @@ variants: only Fedora.12.64 only unattended_install boot shutdown + # Runs qemu-kvm, f12 64 bit guest OS with autotest performance benchmarks + - @qemu_kvm_f12_performance: + # We want qemu-kvm for this run + qemu_binary = /usr/bin/qemu-kvm + only qcow2 + only rtl8139 + only ide + only acpi + only smp2 + only no_pci_assignable + only Fedora.12.64 + only unattended_install autotest.reaim autotest.hackbench autotest.iozone autotest.kernbench autotest.lmbench autotest.tiobench autotest.unixbench + # Uncomment the following lines to enable abort-on-error mode: #abort_on_error = yes #kill_vm.* ?= no diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample index 17be3f2..8f77428 100644 --- a/client/tests/kvm/tests_base.cfg.sample +++ b/client/tests/kvm/tests_base.cfg.sample @@ -155,6 +155,27 @@ variants: - hwclock: test_name = hwclock test_control_file = hwclock.control + - reaim: + test_name = reaim + test_control_file = reaim.control + - hackbench: + test_name = hackbench + test_control_file = hackbench.control + - iozone: + test_name = iozone + test_control_file = iozone.control + - kernbench: + test_name = kernbench + test_control_file = kernbench.control + - lmbench: + test_name = lmbench + test_control_file = lmbench.control + - tiobench: + test_name = tiobench + test_control_file = tiobench.control + - unixbench: + test_name = unixbench + test_control_file = unixbench.control - linux_s3: install setup unattended_install type = linux_s3