diff mbox

[RFC] KVM test: Introduce sample performance test set

Message ID 1270605431-4899-1-git-send-email-lmr@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lucas Meneghel Rodrigues April 7, 2010, 1:57 a.m. UTC
None
diff mbox

Patch

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@linux.vnet.ibm.com>"
+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 <yingtao@cn.ibm.com>"
+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@linux.vnet.ibm.com>"
+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 <mbligh@google.com>"
+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@google.com>"
+    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 <yingtao@cn.ibm.com>"
+    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 <mbligh@google.com>"
+    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@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 <mbligh@google.com>"
+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