[PATCH] [RFC] KVM test: Introduce sample performance test set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux