Skip to content

RFC Running benchmarks via OSSTest

Dario Faggioli xen-devel 1 version In review

Get series with b4
b4 am 20140626124540.20110.24159.stgit@Solace

Versions newest first

  1. v1 RFC Latest9 patches 11 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9mg-unixbench-download: new script for downloading the unixbench archiveap-common mg-unixbench-download+38 -02 replies
2/9ts-unixbench-prep: prep the environment for running unixbenchts-unixbench-prep+79 -04 replies
3/9ts-unixbench-run: kick off the benchmark on the targetts-unixbench-run+45 -00 replies
4/9ts-unixbench-reslts: for retrieving the resultsts-unixbench-reslts+56 -02 replies
5/9sg-run-job: new recipe for a unixbench jobsg-run-job+28 -00 replies
6/9make-bench-flight: to create a benchmarking flightmake-bench-flight+92 -00 replies
7/9make-flight: introduce a new -t optionstandalone-reset+6 -32 replies
8/9mg-unixbench-download: make it genericap-common mg-unixbench-download+21 -20 replies
9/9ts-unixbench-prep: make it genericts-unixbench-prep+57 -371 reply

Reviews trailers per patch

None of the 9 patches has a Reviewed-by or Acked-by.

PatchDario Faggioli
1/9igned-off-by
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH RFC 0/9] Running benchmarks via OSSTest

Hello Everyone,

This is something I've been working in the latest few days, and it's about making it possible to run benchmarks via OSSTest. I've (of course) tested it in standalone mode, but nothing forbids to integrate it in our push gate, as we were saying at the hackathon. Of course, there are a lot of things to be decided. Where to run benchmarks, which benchmarks, how frequently, what to do with the results, etc, but it's a start! :-P

So, in standalone mode, after applying the patches, you can do the following, and you'll have a PV guest running unixbench for a while, and the results fetched for you on the OSSTest standalone controller stash area:

# Retrieve the benchmark archive
./mg-unixbench-download
# Reset, create the benchmarking flight, install the host and build Xen and Linux ./standalone-reset -t bench
./standalone run-job -R -h ghoul3 build-amd64 # consider --lvextendmax=XXGB, if necessary
./standalone run-job -h ghoul3 build-amd64-pvops
# Or set-paths --if build happened already-- like this:
#./standalone set-paths build-amd64
#./standalone set-paths build-amd64-pvops
# Install Xen on the host
./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-xen-install ./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-host-reboot # Install (and start) the guest
./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-debian-install ./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-debian-fixup debian ./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-guest-start debian # Prepare the benchmarking environment in the guest
./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-unixbench-prep debian # Run the benchmark in the guest
./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-unixbench-run debian # Retrieve the benchmark results:
./standalone run-test -h ghoul3 bench-unixbench-amd64-amd64-xl-credit ts-unixbench-reslts debian

A few jobs are being created. In case you want to use one, instead of invoking all the ts-s, run the following:

# Retrieve the benchmark archive
./mg-unixbench-download
# Reset, create the benchmarking flight, install the host and build Xen and Linux ./standalone-reset -t bench
./standalone run-job -R -h ghoul3 build-amd64 # consider --lvextendmax=XXGB, if necessary
./standalone run-job -h ghoul3 build-amd64-pvops
# Run the benchmarking job:
./standalone run-job -h ghoul3 bench-unixbench-amd64-amd64-xl-credit2

Almost all the loginc to use an HVM guest are there, a just need a few fixups in ts-debian-hvm-install that I'll submit as a separate patch.

I tested both the ways in standalone mode, and it seems to be working here.

And that's it... So, what do you think about it? IanC? IanJ?

I now it's still a sort of a prototype, but I'd love to hear your thoughts before proceeding any further.

One thing about the last two patches. They are there to show how the code will look like if we take a slightly different path than what's outlined in the first part of the series. The idea is, in fact, to have the mg-xxx-download and the ts-xxx-{prep,run,reslts} scripts to be more generic, accept one (or more) benchmark name(s) as parameter and prepare the target (host or guest) for them. That would make the single scripts slightly more complex, but will avoid having to have 4 scripts (downloading, preparing, running and fetching results) for each new benchmark we want to introduce support for.

Personally, I think I prefer them to be generic, i.e., something similar to what they look like after all the series is applied, as compared to how they look only until patch 7. This is exacly an example of something I'd like to hear your thoughts about before going forward. :-)

The series is also available here:

git://xenbits.xen.org/people/dariof/osstest.git benchmarking-with-osstest-RFC

Regards,
Dario
---
Dario Faggioli (9):
mg-unixbench-download: new script for downloading the unixbench archive
ts-unixbench-prep: prep the environment for running unixbench
ts-unixbench-run: kick off the benchmark on the target
ts-unixbench-reslts: for retrieving the results
sg-run-job: new recipe for a unixbench job
make-bench-flight: to create a benchmarking flight
make-flight: introduce a new -t option
mg-unixbench-download: make it generic
ts-unixbench-prep: make it generic

 ap-common             |    8 ++++
 make-bench-flight     |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 mg-unixbench-download |   49 ++++++++++++++++++++++++
 sg-run-job            |   28 ++++++++++++++
 standalone-reset      |    9 +++-
 ts-unixbench-prep     |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 ts-unixbench-reslts   |   56 ++++++++++++++++++++++++++++
 ts-unixbench-run      |   45 ++++++++++++++++++++++
 8 files changed, 383 insertions(+), 3 deletions(-)
 create mode 100755 make-bench-flight
 create mode 100755 mg-unixbench-download
 create mode 100755 ts-unixbench-prep
 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)