[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 14/27] ts-kernbench-build: prep the environment for running kernbench
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 <dario.faggioli@xxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxx> Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- 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 <http://www.gnu.org/licenses/>. + +use strict qw(vars); +use DBI; +use Osstest; +use Osstest::TestSupport; +use File::Basename; + +tsreadconfig(); + +# what we expect as argument list is: +# host=<somehost> [<someguest>] +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, <<END, 200); + set -ex + chmod +x /root/kernbench + rm -rf /root/linux-kernbench + mkdir /root/linux-kernbench + tar xaf /root/$kernbench_linux_filename -C /root/linux-kernbench --strip-components=1 +END +} + +sub prep() { + # We use 'alldefconfig', to stress the system a bit more + # (default would be 'allnoconfig'). + target_cmd_root($gho, <<END, 200); + set -ex + cd /root/linux-kernbench + make mrproper + make alldefconfig +END +} + +install_deps(); +ship(); +prep(); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |