[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 23/27] ts-bench-hostcmp-host-reset: new script



On Wed, 2014-12-10 at 19:12 +0100, Dario Faggioli wrote:
> From: Dario Faggioli <raistlin@xxxxxxxx>
> 
Somehow, this patch lacks a changelog! :-O

Sorry about this too, I'll write one for next version.

Regards,
Dario

> 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");
> 

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.