As part of the performance testing effort for KVM, introduce a base performance testset for the sample KVM control file. It will execute several benchmarks on a Fedora 12 guest, bringing back the results to the host. This base testset can be tweaked for folks interested on getting figures from a particular KVM release. Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx> Signed-off-by: Jes Sorensen <jes.sorensen@xxxxxxxxxx> --- .../tests/kvm/autotest_control/hackbench.control | 6 +- client/tests/kvm/autotest_control/iozone.control | 18 +++ .../tests/kvm/autotest_control/kernbench.control | 2 +- client/tests/kvm/autotest_control/lmbench.control | 33 +++++ .../tests/kvm/autotest_control/performance.control | 123 ++++++++++++++++++++ client/tests/kvm/autotest_control/reaim.control | 11 ++ client/tests/kvm/autotest_control/tiobench.control | 12 ++ .../tests/kvm/autotest_control/unixbench.control | 11 ++ client/tests/kvm/tests.cfg.sample | 13 ++ client/tests/kvm/tests_base.cfg.sample | 21 ++++ 10 files changed, 247 insertions(+), 3 deletions(-) create mode 100644 client/tests/kvm/autotest_control/iozone.control create mode 100644 client/tests/kvm/autotest_control/lmbench.control create mode 100644 client/tests/kvm/autotest_control/performance.control create mode 100644 client/tests/kvm/autotest_control/reaim.control create mode 100644 client/tests/kvm/autotest_control/tiobench.control create mode 100644 client/tests/kvm/autotest_control/unixbench.control 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 <skumar@xxxxxxxxxxxxxxxxxx>" +AUTHOR = "ncrao@xxxxxxxxxx (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 <yingtao@xxxxxxxxxx>" +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 <skumar@xxxxxxxxxxxxxxxxxx>" +AUTHOR = "mbligh@xxxxxxxxxx (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 <mbligh@xxxxxxxxxx>" +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=<your OS>/* +""" + +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 <mbligh@xxxxxxxxxx>" + 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@xxxxxxxxxx (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 <yingtao@xxxxxxxxxx>" + 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@xxxxxxxxxx (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 <mbligh@xxxxxxxxxx>" + 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=<your OS>/* +""" + job.run_test('lmbench') + +def step5(): + NAME = 'Threaded IO Bench' + AUTHOR = 'walkinair@xxxxxxxxxx' + 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@xxxxxxxxxx' + 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 <mbligh@xxxxxxxxxx>" +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@xxxxxxxxxx' +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@xxxxxxxxxx' +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 -- 1.6.6.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html