From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 14/27] ts-kernbench-build: prep the environment for running kernbench Date: Wed, 10 Dec 2014 19:10:48 +0100 Message-ID: <20141210181048.26400.68865.stgit@Abyss.station> References: <20141210180651.26400.13356.stgit@Abyss.station> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20141210180651.26400.13356.stgit@Abyss.station> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Ian Jackson , Wei Liu , Ian Campbell List-Id: xen-devel@lists.xenproject.org by shipping the benchmark (it's just a script) and the linux kernel sources to the target. The dependences installed are the ones required to build a linux kernel, plus a few more packages required by the kernbench script. As for the unixbench equivalent, this accepts two parametrs, in the form 'host=somehost someguest'. If only the first one is provided, it must be 'host=somehost', and the script will prep the host. This also installs some packages so, if host sharing is to be allowed (which, BTW, is highly *not* recommended), the following patch from Ian Campbell is required: http://lists.xen.org/archives/html/xen-devel/2014-04/msg02978.html Signed-off-by: Dario Faggioli Cc: Wei Liu Cc: Ian Campbell Cc: Ian Jackson --- ts-kernbench-build | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 ts-kernbench-build diff --git a/ts-kernbench-build b/ts-kernbench-build new file mode 100755 index 0000000..eea844c --- /dev/null +++ b/ts-kernbench-build @@ -0,0 +1,86 @@ +#!/usr/bin/perl -w +# This is part of "osstest", an automated testing framework for Xen. +# Copyright (C) 2009-2014 Citrix Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +use strict qw(vars); +use DBI; +use Osstest; +use Osstest::TestSupport; +use File::Basename; + +tsreadconfig(); + +# what we expect as argument list is: +# host= [] +our ($whhost,$gn) = @ARGV; +$whhost ||= 'host'; +our $ho= selecthost($whhost); + +our $gho= $ho; +if (defined $gn and $gn ne "") { + $gho= selectguest($gn, $ho); + my $err= guest_check_ip($gho); + die "$err $gho->{Name}" if defined $err; +} + +# By default, we expect to find kernbench 0,50, stored in +# $c{Images}/benchs/kernbench. To use something different, define +# r{'kernbench_file'}. +our $kernbench_file= (defined($r{'kernbench_file'})) ? $r{'kernbench_file'} : + "$c{Images}/benchs/kernbench"; + +# We also assume to find the linux kernel archive to be used for the benchmark +# in $c{Images}benchs/linux.xz. To use something different, define +# $r{'kernbench_kern_file'}. +our $kernbench_linux_file= (defined($r{'kernbench_kern_file'})) ? + $r{'kernbench_kern_file'} : "$c{Images}/benchs/linux.xz"; + +# Some deps... +sub install_deps() { + target_install_packages_norec($gho, qw(build-essential time bc)); +} + +# Ship the benchmark and the linux kernel archive to the target machine +sub ship() { + logm("Shipping $kernbench_file and $kernbench_linux_file"); + target_putfile_root($gho, 60, "$kernbench_file", "/root/kernbench"); + target_putfile_root($gho, 200, "$kernbench_linux_file", "/root/"); + + our $kernbench_linux_filename= basename($kernbench_linux_file); + logm("Extracting $kernbench_linux_filename"); + target_cmd_root($gho, <