|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 23/27] ts-bench-hostcmp-host-reset: new script
From: Dario Faggioli <raistlin@xxxxxxxx>
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>
---
Osstest/Debian.pm | 32 +++++++++++++++++---------------
Osstest/TestSupport.pm | 46 +++++++++++++++++++++++++++++++++++++++++++++-
ts-bench-hostcmp-post | 39 +++++++++++++++++++++++++++++++++++++++
ts-xen-install | 38 ++------------------------------------
4 files changed, 103 insertions(+), 52 deletions(-)
create mode 100755 ts-bench-hostcmp-post
diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 418d9f2..447d2d2 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -87,25 +87,27 @@ sub debian_boot_setup ($$$$;$) {
my $kern= $bootloader->{GetBootKern}();
logm("dom0 kernel is $kern");
- system "tar zvtf $distpath->{kern} boot/$kern";
- $? and die "$distpath->{kern} boot/$kern $?";
-
- my $kernver= $kern;
- $kernver =~ s,^/?(?:boot/)?(?:vmlinu[xz]-)?,, or die "$kernver ?";
- my $kernpath= $kern;
- $kernpath =~ s,^(?:boot/)?,/boot/,;
-
- target_cmd_root($ho,
- "update-initramfs -k $kernver -c ||".
- " update-initramfs -k $kernver -u",
- 200);
+ if (defined $distpath) {
+ system "tar zvtf $distpath->{kern} boot/$kern";
+ $? and die "$distpath->{kern} boot/$kern $?";
+
+ my $kernver= $kern;
+ $kernver =~ s,^/?(?:boot/)?(?:vmlinu[xz]-)?,, or die "$kernver ?";
+ my $kernpath= $kern;
+ $kernpath =~ s,^(?:boot/)?,/boot/,;
+
+ target_cmd_root($ho,
+ "update-initramfs -k $kernver -c ||".
+ " update-initramfs -k $kernver -u",
+ 200);
+
+ store_runvar(target_var_prefix($ho).'xen_kernel_path',$kernpath);
+ store_runvar(target_var_prefix($ho).'xen_kernel_ver',$kernver);
+ }
$bootloader->{PreFinalUpdate}();
$bootloader->{UpdateConfig}($ho);
-
- store_runvar(target_var_prefix($ho).'xen_kernel_path',$kernpath);
- store_runvar(target_var_prefix($ho).'xen_kernel_ver',$kernver);
}
sub bl_getmenu_open ($$$) {
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 251668a..c967e4f 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -99,7 +99,7 @@ BEGIN {
guest_vncsnapshot_begin guest_vncsnapshot_stash
guest_check_remus_ok guest_editconfig
host_involves_pcipassthrough host_get_pcipassthrough_devs
- toolstack guest_create
+ toolstack guest_create host_bootxen_setup
await_webspace_fetch_byleaf create_webfile
file_link_contents get_timeout
@@ -1012,6 +1012,50 @@ sub get_host_memory ($) {
return $mem;
}
+#---------- bootloader and booting ----------
+#
+sub host_bootxen_setup ($) {
+ my ($ho)= @_;
+
+ my $xenhopt= "conswitch=x watchdog";
+
+ my $cons= get_host_property($ho, 'XenSerialConsole', 'com1');
+
+ if ( $cons eq "com1" ) {
+ $xenhopt .= " com1=$c{Baud},8n1 console=com1,vga gdb=com1";
+ } elsif ( $cons eq "dtuart" ) {
+ $xenhopt .= " console=dtuart";
+ my $dtuart= get_host_property($ho, 'XenDTUARTPath', undef);
+ $xenhopt .= " dtuart=$dtuart" if $dtuart;
+ } else {
+ logm("No Xen console device defined for host");
+ }
+ if (toolstack()->{Dom0MemFixed}) {
+ $xenhopt .= " dom0_mem=512M,max:512M";
+ }
+ my $append= $r{xen_boot_append};
+ $xenhopt .= " $append" if defined $append;
+ $append = get_host_property($ho, 'xen-commandline-append', undef);
+ $xenhopt .= " $append" if defined $append;
+
+ my @hooks;
+
+ if (host_involves_pcipassthrough($ho)) {
+ push @hooks, {
+ EditBootOptions => sub {
+ my ($ho,$hopt,$kopt) = @_;
+ $$hopt .= ' iommu=on';
+ my $hide= ' xen-pciback.hide='. join '',map { "($_->{Bdf})" }
+ host_get_pcipassthrough_devs($ho);
+ logm("pci passthrough: hiding in dom0: $hide");
+ $$kopt .= $hide;
+ }
+ };
+ }
+
+ return ($xenhopt,@hooks);
+}
+
#---------- stashed files ----------
sub open_unique_stashfile ($) {
diff --git a/ts-bench-hostcmp-post b/ts-bench-hostcmp-post
new file mode 100755
index 0000000..26a67f4
--- /dev/null
+++ b/ts-bench-hostcmp-post
@@ -0,0 +1,39 @@
+#!/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::Debian;
+use Osstest::TestSupport;
+
+tsreadconfig();
+
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho= selecthost($whhost);
+
+sub resetboot () {
+ my ($xenhopt,@hooks)= host_bootxen_setup($ho);
+ my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
+
+ debian_boot_setup($ho, $want_kernver, $xenhopt, undef, \@hooks);
+
+ logm("host reset to booting Xen");
+}
+
+resetboot();
diff --git a/ts-xen-install b/ts-xen-install
index 4d34d1f..d8d38fc 100755
--- a/ts-xen-install
+++ b/ts-xen-install
@@ -134,43 +134,9 @@ sub adjustconfig () {
}
sub setupboot () {
- my $xenhopt= "conswitch=x watchdog";
-
- my $cons= get_host_property($ho, 'XenSerialConsole', 'com1');
-
- if ( $cons eq "com1" ) {
- $xenhopt .= " com1=$c{Baud},8n1 console=com1,vga gdb=com1";
- } elsif ( $cons eq "dtuart" ) {
- $xenhopt .= " console=dtuart";
- my $dtuart= get_host_property($ho, 'XenDTUARTPath', undef);
- $xenhopt .= " dtuart=$dtuart" if $dtuart;
- } else {
- logm("No Xen console device defined for host");
- }
- if (toolstack()->{Dom0MemFixed}) {
- $xenhopt .= " dom0_mem=512M,max:512M";
- }
- my $append= $r{xen_boot_append};
- $xenhopt .= " $append" if defined $append;
- $append = get_host_property($ho, 'xen-commandline-append', undef);
- $xenhopt .= " $append" if defined $append;
-
- my @hooks;
-
- if (host_involves_pcipassthrough($ho)) {
- push @hooks, {
- EditBootOptions => sub {
- my ($ho,$hopt,$kopt) = @_;
- $$hopt .= ' iommu=on';
- my $hide= ' xen-pciback.hide='. join '',map { "($_->{Bdf})" }
- host_get_pcipassthrough_devs($ho);
- logm("pci passthrough: hiding in dom0: $hide");
- $$kopt .= $hide;
- }
- };
- }
-
+ my ($xenhopt,@hooks)= host_bootxen_setup($ho);
my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
+
debian_boot_setup($ho, $want_kernver, $xenhopt, \%distpath, \@hooks);
logm("ready to boot Xen");
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |