From: Dario Faggioli <dario.faggioli@citrix.com>
To: xen-devel@lists.xen.org
Cc: Ian.Jackson@citrix.com, Wei Liu <wei.liu2@citrix.com>,
Ian.Campbell@citrix.com,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: [PATCH RFC 9/9] ts-unixbench-prep: make it generic
Date: Thu, 26 Jun 2014 15:03:28 +0200 [thread overview]
Message-ID: <20140626130328.20110.46824.stgit@Solace> (raw)
In-Reply-To: <20140626124540.20110.24159.stgit@Solace>
to allow dealing with preparation of multiple benchmarks.
XXX As for the previous patch, this is only to show how
the code will look if we go this way.
Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
---
ts-unixbench-prep | 94 ++++++++++++++++++++++++++++++++---------------------
1 file changed, 57 insertions(+), 37 deletions(-)
diff --git a/ts-unixbench-prep b/ts-unixbench-prep
index 607d1a8..f0258ab 100755
--- a/ts-unixbench-prep
+++ b/ts-unixbench-prep
@@ -26,7 +26,10 @@ use feature 'switch';
tsreadconfig();
# what we expect as argument list is:
-# host=<somehost> [<someguest>]
+# host=<somehost> [<someguest>] <benchname>
+@ARGV= reverse @ARGV;
+our $benchname= $ARGV[0]; shift @ARGV;
+@ARGV= reverse @ARGV;
our $ho= selecthost($ARGV[0]); shift @ARGV;
our $gho= $ho;
if ( (0+@ARGV) == 1) {
@@ -35,45 +38,62 @@ if ( (0+@ARGV) == 1) {
die "$err $gho->{Name}" if defined $err;
}
-logm("Prep the environment for running unixbench");
+# In general, we know what benchmarks comes in archives. We assume them to be
+# tarballs, and we try to figure out whether or not it is compressed, and if
+# yes, how. Check is rather basic, relying only on the file extension.
+sub archive_extract_cmd($) {
+ my $benchfile_path= @_;
+ my @exts= qw(.tar .tgz .tbz2. .bz2 .gzip);
+ my ($name, $dir, $ext) = fileparse($benchfile_path, @exts);
+ my $cmd;
-# packages needed to build and run
-target_install_packages_norec($gho, qw(build-essential libx11-dev
- libgl1-mesa-dev libxext-dev));
+ given ($ext) {
+ $cmd= 'xf' when ('.tar');
+ $cmd= 'zxf' when ['.tgz', '.gzip'];
+ $cmd= 'jxf' when ['.tbz2', '.bz2'];
+ default { die "unrecognised file extension $ext" }
+ }
+ return $cmd
+}
-# Ship the benchmark to the target machine. By default, we expect to find
-# UnixBench 5.1.3, stored in $c{Images}/benchs/unixbench.tgz.
-# To use something different, define r{'unixbench_file'}.
-#
-# We also assume we're dealing with a tarball, and we try to figure out
-# whether or not it is compressed, and if yes, how. Check is rather basic,
-# relying only on the file extension.
-#
-my $unixbench_file= (defined($r{'unixbench_file'})) ? $r{'unixbench_file'} :
- "$c{Images}/benchs/unixbench.tgz";
-target_putfile_root($gho, 60, "$unixbench_file", "/root");
+# Ship the benchmark to the target machine and prepare the environment
+logm("Prep the environment for running $benchname");
-my @exts= qw(.tar .tgz .tbz2. .bz2 .gzip);
-my $extract_cmd= 'xf';
-my ($name, $dir, $ext) = fileparse($unixbench_file, @exts);
+if ($benchname eq "unixbench") {
+ # By default, we expect to find UnixBench 5.1.3, stored in
+ # $c{Images}/benchs/unixbench.tgz. To use something different,
+ # define r{'unixbench_file'}.
+ my $unixbench_file= (defined($r{'unixbench_file'})) ? $r{'unixbench_file'} :
+ "$c{Images}/benchs/unixbench.tgz";
+ target_putfile_root($gho, 60, "$unixbench_file", "/root");
-given ($ext) {
- $extract_cmd= 'xf' when ('.tar');
- $extract_cmd= 'zxf' when ['.tgz', '.gzip'];
- $extract_cmd= 'jxf' when ['.tbz2', '.bz2'];
- default { die "unrecognised file extension $ext" }
-}
+ my $extract_cmd= archive_extract_cmd($unixbench_file);
+
+ # Packages needed to build and run
+ target_install_packages_norec($gho, qw(build-essential libx11-dev
+ libgl1-mesa-dev libxext-dev));
-# Prepare the target, by installing dependencies, and build the benchmark
-target_install_packages_norec($gho, qw(build-essential libx11-dev
- libgl1-mesa-dev libxext-dev
- x11-apps));
-target_cmd_root($gho, <<END, 200);
- set -ex
- rm -rf /root/unixbench/
- mkdir /root/unixbench
- tar $extract_cmd /root/$name$ext -C /root/unixbench --strip-components=1
- cd /root/unixbench
- sed -e "s/^# GRAPHIC_TESTS =/GRAPHIC_TESTS =/" -i Makefile
- make
+ target_cmd_root($gho, <<END, 200);
+ set -ex
+ rm -rf /root/unixbench/
+ mkdir /root/unixbench
+ tar $extract_cmd /root/$name$ext -C /root/unixbench --strip-components=1
+ cd /root/unixbench
+ sed -e "s/^# GRAPHIC_TESTS =/GRAPHIC_TESTS =/" -i Makefile
+ make
END
+} elsif ($benchname eq "hackbench") {
+ # In case of hackbench, it is just a .c file.
+ my $hackbench_file= (defined($r{'hackbench_file'})) ? $r{'hackbench_file'} :
+ "$c{Images}/benchs/hackbench.c";
+ target_putfile_root($gho, 60, "$hackbench_file", "/root");
+
+ # Packages needed to build and run
+ target_install_packages_norec($gho, qw(build-essential));
+
+ target_cmd_root($gho, <<END, 200);
+ set -ex
+ rm -f /root/hackbench
+ gcc -g -Wall -O2 -o /root/hackbench /root/hackbench.c -lpthread
+END
+}
next prev parent reply other threads:[~2014-06-26 13:03 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-26 13:02 [PATCH RFC 0/9] Running benchmarks via OSSTest Dario Faggioli
2014-06-26 13:02 ` [PATCH RFC 1/9] mg-unixbench-download: new script for downloading the unixbench archive Dario Faggioli
2014-07-16 15:02 ` Ian Campbell
2014-07-16 16:08 ` Dario Faggioli
2014-06-26 13:02 ` [PATCH RFC 2/9] ts-unixbench-prep: prep the environment for running unixbench Dario Faggioli
2014-07-16 15:09 ` Ian Campbell
2014-07-16 15:11 ` Ian Jackson
2014-07-16 15:57 ` Dario Faggioli
2014-07-16 16:07 ` Dario Faggioli
2014-06-26 13:02 ` [PATCH RFC 3/9] ts-unixbench-run: kick off the benchmark on the target Dario Faggioli
2014-06-26 13:02 ` [PATCH RFC 4/9] ts-unixbench-reslts: for retrieving the results Dario Faggioli
2014-07-16 15:11 ` Ian Campbell
2014-07-16 15:58 ` Dario Faggioli
2014-06-26 13:02 ` [PATCH RFC 5/9] sg-run-job: new recipe for a unixbench job Dario Faggioli
2014-06-26 13:03 ` [PATCH RFC 6/9] make-bench-flight: to create a benchmarking flight Dario Faggioli
2014-06-26 13:03 ` [PATCH RFC 7/9] make-flight: introduce a new -t option Dario Faggioli
2014-07-16 15:13 ` Ian Campbell
2014-07-16 15:14 ` Dario Faggioli
2014-06-26 13:03 ` [PATCH RFC 8/9] mg-unixbench-download: make it generic Dario Faggioli
2014-06-26 13:03 ` Dario Faggioli [this message]
2014-06-27 9:40 ` [PATCH RFC 9/9] ts-unixbench-prep: " Dario Faggioli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140626130328.20110.46824.stgit@Solace \
--to=dario.faggioli@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).