Skip to content

Running benchmarks via OSSTest

Dario Faggioli xen-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest27 patches 12 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/27ts-devbian-hvm-install: prune "cdrom:" from install sourcests-debian-hvm-install+2 -10 replies
2/27Osstest/Debian.pm: fix identifying a Linux baremetal grub2 entryOsstest/Debian.pm+6 -30 replies
3/27Guest setup: allow the amount of RAM to be a runvarOsstest/TestSupport.pm ts-debian-fixup+5 -13 replies
4/27Osstest/TestSupport.pm: Introduce target_getfile_[root_]stash()Osstest/TestSupport.pm+16 -10 replies
5/27mg-unixbench-download: new script for downloading the unixbench archivemg-unixbench-download+40 -00 replies
6/27ts-unixbench-build: prep the environment for running unixbenchts-unixbench-build+77 -00 replies
7/27ts-unixbench-run: kick off the benchmark on the targetOsstest/TestSupport.pm ts-unixbench-run+90 -00 replies
8/27ts-unixbench-reslts: for retrieving the resultsts-unixbench-reslts+67 -02 replies
9/27ts-unixbench-reslts: process and plot bench resultsOsstest/Benchmarking.pm ts-unixbench-reslts+132 -03 replies
10/27sg-run-job: recipes for the unixbench jobssg-run-job+31 -00 replies
11/27make-bench-flight: to create a benchmarking flightREADME make-bench-flight+110 -00 replies
12/27standalone-reset: introduce a new -t optioncr-daily-branch standalone standalone-reset+13 -60 replies
13/27mg-kernbench-download: new script for downloading kernbenchmg-kernbench-download+49 -00 replies
14/27ts-kernbench-build: prep the environment for running kernbenchts-kernbench-build+86 -00 replies
15/27ts-kernbench-run: kick off the benchmark on the targetts-kernbench-run+63 -00 replies
16/27ts-unixbench-reslts: retrieve and stash kernbench resultsts-kernbench-reslts+60 -00 replies
17/27ts-kernbench-reslts: process and plot bench resultsOsstest/Benchmarking.pm ts-kernbench-reslts+99 -81 reply
18/27sg-run-job: recipes for the kernbench jobssg-run-job+29 -00 replies
19/27make-bench-flight: create kernbench jobsmake-bench-flight+42 -130 replies
20/27Osstest/TestSupport.pm: read hosts' hardware characteristicsOsstest/TestSupport.pm README mg-host-hw-specs+126 -10 replies
21/27ts-bench-hostcmp-guest-prep: new scriptts-bench-hostcmp-guest-prep+87 -00 replies
22/27ts-bench-hostcmp-host-prep: new scriptOsstest/Debian.pm ts-bench-hostcmp-host-prep+88 -32 replies
23/27ts-bench-hostcmp-host-reset: new scriptOsstest/Debian.pm Osstest/TestSupport.pm ts-bench-hostcmp-post +1 more+103 -521 reply
24/27Recipes and jobs for running unixbench both on host and guestREADME make-bench-flight sg-run-job+62 -20 replies
25/27ts-bench-hostcmp-post: add plotting facilitiesOsstest/Benchmarking.pm sg-run-job ts-bench-hostcmp-post +1 more+62 -110 replies
26/27Kernbench perf comparison between host and guestmake-bench-flight sg-run-job+24 -110 replies
27/27ts-bench-hostcmp-post: add plotting facilitiesOsstest/Benchmarking.pm ts-bench-hostcmp-post ts-kernbench-reslts+17 -70 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/27] Running benchmarks via OSSTest

Hello everyone,

This is a highly reworked and much more mature version of this old RFC series:

http://lists.xen.org/archives/html/xen-devel/2014-06/msg03429.html

It is about integrating benchmarking capabilities into OSSTest. The series is a lot bigger, because it is now capable of doing a lot more stuff. :-) All the comments I got during review of the RFC have been addressed, of course... More comments are of course welcome!

The series is available here:

git://xenbits.xen.org/people/dariof/osstest.git benchmarking-with-osstest
http://xenbits.xen.org/gitweb/?p=people/dariof/osstest.git;a=shortlog;h=refs/heads/benchmarking-with-osstest

So, about the patches. Patches 01 to 04, as well as patch 20, are preliminary changes and fixes, necessary for the rest of the series to work properly, but they are general enough to be considered separately from the series, if interesting.

Patches 05 to 12 make it possible to run an instance of the Unixbench (XXX) benchmark via OSSTest. Management scripts, test scripts, jobs and recipes are provided to download the benchmark, prepare the guest (PV or HVM), build the benchmark in the guest, run it, and retrieve and process (include some super fancy plots! :-D) the results.

To do so, do as follows (in standalone mode):

  $ ./standalone-reset -t bench
  $ ./mg-unixbench-download
  $ ./standalone run-job -h ultralisk bench-unixbench-amd64-credit-pv-4vcpus-4096ram

One thing about patch 12. I tried, but I can't tell how I should invoke ./standalone in order to test the new parameter I'm adding... Can someone help with this? IanC?

To have an idea of how the 'output' of one of this jobs looks like, have a look here:

http://xenbits.xen.org/people/dariof/osstest-bench/bench-kernbench-amd64-credit-hvm-4vcpus-4096ram.log
http://xenbits.xen.org/people/dariof/osstest-bench/bench-kernbench-amd64-credit-hvm-4vcpus-4096ram/
http://xenbits.xen.org/people/dariof/osstest-bench/bench-kernbench-amd64-credit-hvm-4vcpus-4096ram/debianhvm.guest.osstest--kernbench-n4-PLOT.png

Or here:

http://xenbits.xen.org/people/dariof/osstest-bench/bench-unixbench-amd64-credit-pv-4vcpus-4096ram.log
http://xenbits.xen.org/people/dariof/osstest-bench/bench-unixbench-amd64-credit-pv-4vcpus-4096ram/
http://xenbits.xen.org/people/dariof/osstest-bench/bench-unixbench-amd64-credit-pv-4vcpus-4096ram/debian.guest.osstest--unixbench-i1-c4-PLOT.png

Patches 13 to 19 does the very same, but for Kernbench (XXX):

  $ ./mg-kernbench-download
  $ ./standalone run-job -h ultralisk bench-kernbench-amd64-credit-hvm-4vcpus-4096ram

Patches 21 to 27 aims at allowing running a benchmark both in a guest and on baremetal, to investigate the performances loss due to the virtualization overhead. To do that, for Unixbench and Kernbench, one just issue the following commands (in standalone mode):

  $ ./standalone run-job -h ultralisk bench-hostcmp-unixbench-amd64-credit
  $ ./standalone run-job -h ultralisk bench-hostcmp-kernbench-amd64-credit2

To have an idea of how the 'output' of one of these jobs looks like, have a look here:

http://xenbits.xen.org/people/dariof/osstest-bench/bench-hostcmp-kernbench-amd64-credit.log
http://xenbits.xen.org/people/dariof/osstest-bench/bench-hostcmp-kernbench-amd64-credit/
http://xenbits.xen.org/people/dariof/osstest-bench/bench-hostcmp-kernbench-amd64-credit/bench-hostcmp-kernbench-amd64-credit-PLOT.png

TODOs:
* in patch 02/27, I haven't actually checked whether also grub1 and/or uboot needs fixing
* When comparing performance, I think it would be best to always use the same kernel, in host and guests. This happens by default for PV guest, while it does not for HVM guests. This of course can be solved pretty easily, and I plan to do it either in future posting of this series, or with a follow-up patch.

Regards,
Dario
---
Dario Faggioli (27):
ts-devbian-hvm-install: prune "cdrom:" from install sources Osstest/Debian.pm: fix identifying a Linux baremetal grub2 entry Guest setup: allow the amount of RAM to be a runvar Osstest/TestSupport.pm: Introduce target_getfile_[root_]stash()
mg-unixbench-download: new script for downloading the unixbench archive
ts-unixbench-build: prep the environment for running unixbench
ts-unixbench-run: kick off the benchmark on the target
ts-unixbench-reslts: for retrieving the results
ts-unixbench-reslts: process and plot bench results
sg-run-job: recipes for the unixbench jobs
make-bench-flight: to create a benchmarking flight
standalone-reset: introduce a new -t option
mg-kernbench-download: new script for downloading kernbench
ts-kernbench-build: prep the environment for running kernbench
ts-kernbench-run: kick off the benchmark on the target
ts-unixbench-reslts: retrieve and stash kernbench results
ts-kernbench-reslts: process and plot bench results
sg-run-job: recipes for the kernbench jobs
make-bench-flight: create kernbench jobs Osstest/TestSupport.pm: read hosts' hardware characteristics ts-bench-hostcmp-guest-prep: new script ts-bench-hostcmp-host-prep: new script ts-bench-hostcmp-host-reset: new script
Recipes and jobs for running unixbench both on host and guest
ts-bench-hostcmp-post: add plotting facilities
Kernbench perf comparison between host and guest
ts-bench-hostcmp-post: add plotting facilities

 Osstest/Benchmarking.pm     |  210 +++++++++++++++++++++++++++++++++++++++++++
 Osstest/Debian.pm           |   54 +++++++----
 Osstest/TestSupport.pm      |  166 +++++++++++++++++++++++++++++++++-
 README                      |   36 +++++++
 cr-daily-branch             |    3 -
 make-bench-flight           |  153 +++++++++++++++++++++++++++++++
 mg-host-hw-specs            |   35 +++++++
 mg-kernbench-download       |   49 ++++++++++
 mg-unixbench-download       |   40 ++++++++
 sg-run-job                  |  102 ++++++++++++++++++++-
 standalone                  |    7 +
 standalone-reset            |    9 +-
 ts-bench-hostcmp-guest-prep |   87 ++++++++++++++++++
 ts-bench-hostcmp-host-prep  |   74 +++++++++++++++
 ts-bench-hostcmp-post       |   81 +++++++++++++++++
 ts-debian-fixup             |    3 +
 ts-debian-hvm-install       |    3 -
 ts-kernbench-build          |   86 ++++++++++++++++++
 ts-kernbench-reslts         |   75 +++++++++++++++
 ts-kernbench-run            |   63 +++++++++++++
 ts-unixbench-build          |   77 ++++++++++++++++
 ts-unixbench-reslts         |   84 +++++++++++++++++
 ts-unixbench-run            |   67 ++++++++++++++
 ts-xen-install              |   38 --------
 24 files changed, 1534 insertions(+), 68 deletions(-)
 create mode 100644 Osstest/Benchmarking.pm
 create mode 100755 make-bench-flight
 create mode 100755 mg-host-hw-specs
 create mode 100755 mg-kernbench-download
 create mode 100755 mg-unixbench-download
 create mode 100755 ts-bench-hostcmp-guest-prep
 create mode 100755 ts-bench-hostcmp-host-prep
 create mode 100755 ts-bench-hostcmp-post
 create mode 100755 ts-kernbench-build
 create mode 100755 ts-kernbench-reslts
 create mode 100755 ts-kernbench-run
 create mode 100755 ts-unixbench-build
 create mode 100755 ts-unixbench-reslts
 create mode 100755 ts-unixbench-run

--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-------------------------------------------------------------------
Dario Faggioli, Ph.D, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)