All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xen-devel] [OSSTEST PATCH 15/62] ts-debian-di-install: use gho to pick d-i
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

The original code used ho which gave us the host suite, but we wanted
the guest suite.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-debian-di-install | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ts-debian-di-install b/ts-debian-di-install
index 60079712..361a1710 100755
--- a/ts-debian-di-install
+++ b/ts-debian-di-install
@@ -152,8 +152,8 @@ sub setup_netboot($$$)
 	die if $r{ "$gho->{Guest}_netboot_kernel" }
 	||     $r{ "$gho->{Guest}_netboot_ramdisk" };
 
-	my $di_path = $c{TftpPath}.'/'.$ho->{Tftp}{DiBase}.'/'.${arch}.'/'.
-	    debian_guest_di_version($ho).'-'.$ho->{Suite};
+	my $di_path = $c{TftpPath}.'/'.$gho->{Tftp}{DiBase}.'/'.${arch}.'/'.
+	    debian_guest_di_version($gho).'-'.$gho->{Suite};
 
         if (${arch} =~ m/amd64|i386/) {
 	    $kernel = "$di_path/vmlinuz-xen";
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 01/62] gitignore: ignore vim swap file
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 425506b6..f7e5b77f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 *~
 *.bak
+*.swp
 tmp
 *.tmp
 bisection.ps
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 41/62] ts-debian-fixup: Use debian_overlays_fixup_cmd
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

Otherwise we get the same error for guests as was prevented for hosts
by "preseed_base: chmod ssh host private keys to placate sshd".

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-debian-fixup | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/ts-debian-fixup b/ts-debian-fixup
index 0e553d47..7d9d0398 100755
--- a/ts-debian-fixup
+++ b/ts-debian-fixup
@@ -206,7 +206,12 @@ savecfg();
 ether();
 target_kernkind_check($gho);
 access();
+
 debian_overlays($ho, \&overlay);
+target_cmd_root($ho, <<END.debian_overlays_fixup_cmd($ho, $mountpoint));
+set -ex
+END
+
 console();
 filesystems();
 otherfixupcfg();
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [PATCH] nvme: improve logging
From: Minwoo Im @ 2019-04-10 14:25 UTC (permalink / raw)

In-Reply-To: <20190410141706.146455-1-hare@suse.de>

On 4/10/19 11:17 PM, Hannes Reinecke wrote:
> Currently nvme is very reluctant if it comes to logging anything,
> _unless_ it's an ANA AEN. So this patch tries to remedy this by
> decreasing the priority for the ANA AEN logging message, and improve
> the logging when calling nvme_reset_ctrl().
> 
> Signed-off-by: Hannes Reinecke <hare at suse.com>
> ---
>   drivers/nvme/host/core.c      | 44 +++++++++++++++++++++++++++++--------------
>   drivers/nvme/host/multipath.c |  5 ++++-
>   2 files changed, 34 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 8d285bfcd352..98260b2c7a6f 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -94,6 +94,24 @@ static void nvme_put_subsystem(struct nvme_subsystem *subsys);
>   static void nvme_remove_invalid_namespaces(struct nvme_ctrl *ctrl,
>   					   unsigned nsid);
>   
> +static const char *nvme_ctrl_state_name(struct nvme_ctrl *ctrl)
> +{
> +	static const char *const state_name[] = {
> +		[NVME_CTRL_NEW]		= "new",
> +		[NVME_CTRL_LIVE]	= "live",
> +		[NVME_CTRL_ADMIN_ONLY]	= "only-admin",
> +		[NVME_CTRL_RESETTING]	= "resetting",
> +		[NVME_CTRL_CONNECTING]	= "connecting",
> +		[NVME_CTRL_DELETING]	= "deleting",
> +		[NVME_CTRL_DEAD]	= "dead",
> +	};
> +
> +	if ((unsigned)ctrl->state < ARRAY_SIZE(state_name) &&
> +	    state_name[ctrl->state])
> +		return state_name[ctrl->state];
> +	return NULL;

Hi, Hannes,

IMHO, If you want to print out "unknown" in the caller level, why don't 
we just
return "unknown" string itself to the caller to make caller don't need 
to print
out "unknown" OR "unknown state\n" just like below ?

I think this might make duplications for "unknown" string in callers.

Thanks,

> +}
> +
>   static void nvme_set_queue_dying(struct nvme_ns *ns)
>   {
>   	/*
> @@ -119,10 +137,17 @@ static void nvme_queue_scan(struct nvme_ctrl *ctrl)
>   
>   int nvme_reset_ctrl(struct nvme_ctrl *ctrl)
>   {
> -	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING))
> +	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING)) {
> +		const char *state_name = nvme_ctrl_state_name(ctrl);
> +
> +		dev_warn(ctrl->device, "cannot reset ctrl in state %s\n",
> +			 state_name ? state_name : "unknown");
>   		return -EBUSY;
> -	if (!queue_work(nvme_reset_wq, &ctrl->reset_work))
> +	}
> +	if (!queue_work(nvme_reset_wq, &ctrl->reset_work)) {
> +		dev_dbg(ctrl->device, "ctrl reset already queued\n");
>   		return -EBUSY;
> +	}
>   	return 0;
>   }
>   EXPORT_SYMBOL_GPL(nvme_reset_ctrl);
> @@ -2971,19 +2996,10 @@ static ssize_t nvme_sysfs_show_state(struct device *dev,
>   				     char *buf)
>   {
>   	struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
> -	static const char *const state_name[] = {
> -		[NVME_CTRL_NEW]		= "new",
> -		[NVME_CTRL_LIVE]	= "live",
> -		[NVME_CTRL_ADMIN_ONLY]	= "only-admin",
> -		[NVME_CTRL_RESETTING]	= "resetting",
> -		[NVME_CTRL_CONNECTING]	= "connecting",
> -		[NVME_CTRL_DELETING]	= "deleting",
> -		[NVME_CTRL_DEAD]	= "dead",
> -	};
> +	const char *state_name = nvme_ctrl_state_name(ctrl);
>   
> -	if ((unsigned)ctrl->state < ARRAY_SIZE(state_name) &&
> -	    state_name[ctrl->state])
> -		return sprintf(buf, "%s\n", state_name[ctrl->state]);
> +	if (state_name)
> +		return sprintf(buf, "%s\n", state_name);
>   
>   	return sprintf(buf, "unknown state\n");
>   }
> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
> index 503539d4616a..cca60044163b 100644
> --- a/drivers/nvme/host/multipath.c
> +++ b/drivers/nvme/host/multipath.c
> @@ -81,6 +81,9 @@ void nvme_failover_req(struct request *req)
>   		 * Reset the controller for any non-ANA error as we don't know
>   		 * what caused the error.
>   		 */
> +		dev_info(ns->ctrl->device,
> +			"nvme status 0x%04x, resetting controller\n",
> +			status);
>   		nvme_reset_ctrl(ns->ctrl);
>   		break;
>   	}
> @@ -423,7 +426,7 @@ static int nvme_update_ana_state(struct nvme_ctrl *ctrl,
>   	unsigned *nr_change_groups = data;
>   	struct nvme_ns *ns;
>   
> -	dev_info(ctrl->device, "ANA group %d: %s.\n",
> +	dev_dbg(ctrl->device, "ANA group %d: %s.\n",
>   			le32_to_cpu(desc->grpid),
>   			nvme_ana_state_names[desc->state]);
>   
> 

^ permalink raw reply

* [Xen-devel] [OSSTEST PATCH 03/62] ts-xen-build-prep: only install w3c-dtd-xhtml for suites <stretch
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

That package is not included in stretch.

That package was installed because the libvirt build needed it.
However libvirt builds fine without it in stretch.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-xen-build-prep | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/ts-xen-build-prep b/ts-xen-build-prep
index 23bbbeb9..a15ab3df 100755
--- a/ts-xen-build-prep
+++ b/ts-xen-build-prep
@@ -206,11 +206,13 @@ sub prep () {
                       libglib2.0-dev liblzma-dev pkg-config
                       autoconf automake libtool xsltproc
                       libxml2-utils libxml2-dev
-                      libdevmapper-dev w3c-dtd-xhtml libxml-xpath-perl
-                      libelf-dev
+                      libdevmapper-dev libxml-xpath-perl libelf-dev
                       ccache nasm checkpolicy ebtables
                       libgnutls28-dev);
 
+    if ($ho->{Suite} =~ m/squeeze|wheezy|jessie/) {
+	push(@packages, "w3c-dtd-xhtml");
+    }
     if ($ho->{Suite} !~ m/squeeze|wheezy/) {
 	push(@packages, qw(ocaml-nox ocaml-findlib));
     }
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 05/62] ts-xen-install: install some packages on stretch
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

The "route" command is now in that package.

libnl is needed when running xl.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
v3: invert condition.
---
 ts-xen-install | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/ts-xen-install b/ts-xen-install
index 8de94ac2..80952857 100755
--- a/ts-xen-install
+++ b/ts-xen-install
@@ -52,6 +52,9 @@ sub packages () {
                                libsdl1.2debian libglib2.0-0 liblzma5
 			       qemu-utils
                                netcat-openbsd));
+    if ($ho->{Suite} !~ m/squeeze|wheezy|jessie/) {
+        target_install_packages($ho, 'net-tools libnl-route-3-200');
+    }
     if ($ho->{Suite} =~ m/jessie/) {
         target_install_packages($ho, 'libnl-route-3-200');
     }
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 10/62] ts-debian-fixup: append noresume
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

See code comment for explanation.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
v4: Fix grammar error in comment.
---
 ts-debian-fixup | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/ts-debian-fixup b/ts-debian-fixup
index 478dc2af..0e553d47 100755
--- a/ts-debian-fixup
+++ b/ts-debian-fixup
@@ -178,6 +178,16 @@ sub otherfixupcfg () {
         $extra .= " iommu=soft";
     }
 
+    # There might be stale entries in /etc/initramfs-tools/conf.d/resume which
+    # get stored in the initramfs. That introduces delay in guest booting which
+    # might cause tests to fail.
+    #
+    # This is particularly prominent in stretch when it tries to scan for the
+    # nonexistent device(s) for a long time. See also Debian bug #784810.
+    #
+    # Append noresume to fix the issue.
+    $extra .= " noresume";
+
     if ($cfg =~ m/extra\s*=\s*['"](.*)['"]/) {
 	$cfg =~ s/extra\s*=\s*['"](.*)['"]/extra = '$1 $extra'/;
     } else {
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 11/62] ts-xen-build-prep: install e2fslibs-dev
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

The in-tree libfsimage ext2fs implementation can't handle 64bit
enabled ext4, which is the default in stretch.

Installing e2fslibs-dev causes libfsimage to pick up the packaged
ext2fs implementation.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 ts-xen-build-prep | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/ts-xen-build-prep b/ts-xen-build-prep
index ca5735a1..c38ab36d 100755
--- a/ts-xen-build-prep
+++ b/ts-xen-build-prep
@@ -226,6 +226,12 @@ sub prep () {
         push(@packages, qw(texinfo autopoint libpciaccess-dev));
     }
 
+    # The in-tree ext4 support in libfsimage can't cope with 64bit ext4 on
+    # 32bit build. Use the packaged library.
+    if ($ho->{Suite} !~ m/squeeze|wheezy|jessie/) {
+        push(@packages, qw(e2fslibs-dev));
+    }
+
     target_install_packages($ho, @packages);
     target_cmd_root($ho, "chmod -R a+r /usr/share/git-core/templates");
     # workaround for Debian #595728
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 12/62] ts-guests-nbd-mirror: make it work with stretch
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

On the server side, only add oldstyle= and port= on wheezy and jessie.
stretch doesn't support or need those anymore.

On the client side, generate new style configuration file.

Reorder nbd-client setup a bit. Install it first, then write our own
configuration file, then start it.  This stops dpkg asking what to
do regarding configuration files.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
v3: invert some tests, rearrange client setup code.
v4: Fix commit message grammar.
---
 ts-guests-nbd-mirror | 47 +++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 43 insertions(+), 4 deletions(-)

diff --git a/ts-guests-nbd-mirror b/ts-guests-nbd-mirror
index ca8300db..7ea31f7c 100755
--- a/ts-guests-nbd-mirror
+++ b/ts-guests-nbd-mirror
@@ -60,15 +60,19 @@ sub configserver () {
 [generic]
     user = root
 END
-    $scfg .= <<END unless $sho->{Suite} =~ m/sarge|lenny|squeeze/;
+
+    $scfg .= <<END if $sho->{Suite} =~ m/wheezy|jessie/;
     oldstyle = true
 END
+
     foreach my $v (@vols) {
 	$v->{Port}= unique_incrementing_runvar("${srvhost}_nextport",4000);
 	$v->{Path}= "/dev/$v->{Gho}{Vg}/$v->{Lv}";
 	$scfg.=<<END;
 [export$v->{Ix}]
     exportname = $v->{Path}
+END
+	$scfg.=<<END if $sho->{Suite} =~ m/wheezy|jessie/;
     port = $v->{Port}
 END
     }
@@ -79,9 +83,7 @@ END
     target_install_packages($sho, qw(nbd-server));
 }
 
-sub configclient () {
-    target_cmd_root($cho, "dpkg --purge nbd-client ||:");
-
+sub configclient_pre_stretch () {
     my $mydaemon= '/root/nbd-client-async';
     target_putfilecontents_root_stash($cho,10,<<'END',$mydaemon);
 #!/bin/sh
@@ -107,7 +109,44 @@ NBD_PORT[$v->{Ix}]=$v->{Port}
 END
     }
     target_putfilecontents_root_stash($cho,10,$ccfg,"/etc/nbd-client");
+}
+
+sub configclient_stretch_and_later () {
+    my $ccfg = <<END;
+# generated by $0
+END
+
+    foreach my $v (@vols) {
+	my $nbddev = "nbd$v->{Ix}";
+	$ccfg .= <<END;
+$nbddev $sho->{Name} export$v->{Ix}
+END
+    }
+
+    target_putfilecontents_root_stash($cho,10,$ccfg,"/etc/nbdtab");
+}
+
+sub configclient () {
+    target_cmd_root($cho, "dpkg --purge nbd-client ||:");
+
     target_install_packages($cho, qw(nbd-client));
+
+    target_cmd_root($cho, "/etc/init.d/nbd-client stop ||:");
+
+    if ($cho->{Suite} =~ m/wheezy|jessie/) {
+        configclient_pre_stretch();
+    } else {
+        configclient_stretch_and_later();
+	foreach my $v (@vols) {
+	    my $nbddev = "nbd$v->{Ix}";
+	    target_cmd_root($cho, <<END);
+mkdir -p /dev/$v->{Gho}{Vg}
+if ! test -L $v->{Path}; then ln -s /dev/$nbddev $v->{Path}; fi
+END
+	}
+    }
+
+    target_cmd_root($cho, "/etc/init.d/nbd-client start");
 }
 
 sub shuffleconfigs () {
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 08/62] ts-host-install: don't use the new nic naming scheme
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-host-install | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ts-host-install b/ts-host-install
index 292733ba..9ab3de62 100755
--- a/ts-host-install
+++ b/ts-host-install
@@ -244,6 +244,10 @@ END
     # why this is repeated.
     push @hocmdline, "console=$console" unless $console eq "NONE";
 
+    # Don't use "Predictable Network Interface Names"
+    # https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
+    push @hocmdline, "net.ifnames=0" if $ho->{Suite} =~ m/stretch/;
+
     push @hocmdline,
         get_host_property($ho, "linux-boot-append $ho->{Suite}", ''),
         get_host_property($ho, "linux-boot-append $ho->{Suite} $r{arch}", '');
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 40/62] preseed_base: break out debian_overlays_fixup_cmd
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

We are going to want this for guests too.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index d76dd03d..78d242e4 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -36,7 +36,7 @@ BEGIN {
     @EXPORT      = qw(debian_boot_setup
                       di_installer_path di_special_kernel
                       setupboot_bootloader_edited_rune
-                      debian_overlays
+                      debian_overlays debian_overlays_fixup_cmd
                       debian_guest_suite debian_guest_di_version
                       %preseed_cmds
                       preseed_base
@@ -815,6 +815,14 @@ sub debian_overlays ($$) {
     $maybe->("$c{OverlayLocal}-$suite", 'overlay-local-$suite.tar');
 }
 
+sub debian_overlays_fixup_cmd ($;$) {
+    my ($ho, $subdir) = @_;
+    $subdir //= '';
+    return <<END;
+chmod 600 $subdir/etc/ssh/ssh_host_*_key ||:
+END
+}
+
 sub preseed_base ($$$;@) {
     my ($ho,$sfx,$extra_packages,%xopts) = @_;
 
@@ -873,10 +881,10 @@ END
 
     # Host private keys in the overlays have to be group-readable
     # at least, or no-one can use them.  But ssh is very fussy.
-    preseed_hook_command($ho, 'late_command', $sfx, <<END);
+    preseed_hook_command($ho, 'late_command', $sfx,
+			 <<END. debian_overlays_fixup_cmd($ho, '/target'));
 #!/bin/sh
 set -ex
-chmod 600 /target/etc/ssh/ssh_host_*_key ||:
 END
 
     my $preseed = <<"END";
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 42/62] preseed_hook_command: allow specifying di keys other than preseed/*
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

Ie, only add preseed/ if there is not already a slash.

No functional change with existing call sites other than urls and
temporary filenames.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 78d242e4..f8ff4f46 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -1472,9 +1472,12 @@ END
 
 sub preseed_hook_command ($$$$) {
     my ($ho, $di_key, $sfx, $text) = @_;
+    $di_key = "preseed/$di_key" unless $di_key =~ m{/};
+    my $basename = $di_key;
+    $basename =~ s{/}{--};
     my $ix= $#{ $preseed_cmds{$di_key} } + 1;
-    my $url= create_webfile($ho, "$di_key-$ix$sfx", $text);
-    my $file= "/tmp/$di_key-$ix";
+    my $url= create_webfile($ho, "$basename-$ix$sfx", $text);
+    my $file= "/tmp/$basename-$ix";
     my $cmd_cmd= "$preseed_wget -O $file '$url' && chmod +x $file && $file";
     push @{ $preseed_cmds{$di_key} }, $cmd_cmd;
 }
@@ -1521,7 +1524,7 @@ END
 sub preseed_hook_cmds () {
     my $preseed;
     foreach my $di_key (keys %preseed_cmds) {
-        $preseed .= "d-i preseed/$di_key string ".
+        $preseed .= "d-i $di_key string ".
             (join ' && ', @{ $preseed_cmds{$di_key} }). "\n";
     }
     return $preseed;
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [Xen-devel] [OSSTEST PATCH 09/62] ts-debian-fixup: merge origin extra= to our own if necessary
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

The original extra= was not removed, so there were two extra= in the
resulting config file.

It wasn't a problem for xl because the second extra= took precedence.
However libvirt tests would only pick up the first extra= so they
worked by chance.

Fix this issue by merging the original. If there isn't already extra=
in $cfg, use our own.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
v3: handle situation when no extra= is in $cfg
---
 ts-debian-fixup | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ts-debian-fixup b/ts-debian-fixup
index 3e5cdb97..478dc2af 100755
--- a/ts-debian-fixup
+++ b/ts-debian-fixup
@@ -178,7 +178,11 @@ sub otherfixupcfg () {
         $extra .= " iommu=soft";
     }
 
-    $cfg .= "\nextra='$extra'\n";
+    if ($cfg =~ m/extra\s*=\s*['"](.*)['"]/) {
+	$cfg =~ s/extra\s*=\s*['"](.*)['"]/extra = '$1 $extra'/;
+    } else {
+	$cfg .= "extra = '$extra'\n";
+    }
 };
 
 sub writecfg () {
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 22/62] contents_make_cpio: Include symlinks
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

We are going to introduce some symlinks into one of our preprepared
overlays.  We must therefore arrange to copy them as appropriate.

The syntax `-type f,l' is an extension in GNU find.  If this causes
trouble in the future we will then have to introduce the obvious
circumlocution involving ( ).

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/TestSupport.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index d35a784b..1f01ac6a 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -1518,7 +1518,7 @@ sub contents_make_cpio ($$$) {
     if (!$child) {
         postfork();
         chdir($srcdir) or die $!;
-        open STDIN, 'find ! -name "*~" ! -name "#*" -type f -print0 |'
+        open STDIN, 'find ! -name "*~" ! -name "#*" -type f,l -print0 |'
             or die $!;
         open STDOUT, '>&', $fh or die $!;
         system "cpio -H$format -o --quiet -0 -R 1000:1000";
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 37/62] TestSupport: Provide target_getfile_root_stash
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

This convenient function selects a local filename based on a target
filename, and copies the target file to the selected stash file.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/TestSupport.pm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index a5870e4d..ec867e4f 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -61,6 +61,7 @@ BEGIN {
                       target_cmd_inputfh_root sshuho
                       target_getfile target_getfile_root
                       target_putfile target_putfile_root
+		      target_getfile_root_stash
                       target_putfilecontents_stash
 		      target_putfilecontents_root_stash
                       target_put_guest_image target_editfile
@@ -553,6 +554,14 @@ sub target_getfile_root ($$$$) {
     my ($ho,$timeout, $rsrc,$ldst) = @_;
     tgetfileex('root', @_);
 }
+sub target_getfile_root_stash ($$$;$) {
+    my ($ho,$timeout,$rsrc, $lleaf) = @_; # => full path of local file
+    target_somefile_leaf(\$lleaf, $rsrc, $ho);
+    open_unique_stashfile(\$lleaf); # discard filehandle, leave file
+    my $lfile = "$stash/$lleaf";
+    target_getfile_root($ho,$timeout,$rsrc,$lfile);
+    return $lfile;
+}
 
 sub tputfileex {
     my ($ruser, $ho,$timeout, $lsrc,$rdst, $rsync) = @_;
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [PATCH] drm/amdgpu: support dpm level modification under virtualization v3
From: Yintian Tao @ 2019-04-10 14:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Yintian Tao

Under vega10 virtualuzation, smu ip block will not be added.
Therefore, we need add pp clk query and force dpm level function
at amdgpu_virt_ops to support the feature.

v2: add get_pp_clk existence check and use kzalloc to allocate buf

v3: return -ENOMEM for allocation failure and correct the coding style

Change-Id: I713419c57b854082f6f739f1d32a055c7115e620
Signed-off-by: Yintian Tao <yttao@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c    |  4 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c     | 15 ++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c   | 49 +++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h   | 11 +++++
 drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c      | 78 ++++++++++++++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h      |  6 +++
 7 files changed, 164 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 3ff8899..bb0fd5a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2486,6 +2486,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
 	mutex_init(&adev->virt.vf_errors.lock);
 	hash_init(adev->mn_hash);
 	mutex_init(&adev->lock_reset);
+	mutex_init(&adev->virt.dpm_mutex);
 
 	amdgpu_device_check_arguments(adev);
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 6190495..29ec28f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -727,6 +727,10 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
 		if (adev->pm.dpm_enabled) {
 			dev_info.max_engine_clock = amdgpu_dpm_get_sclk(adev, false) * 10;
 			dev_info.max_memory_clock = amdgpu_dpm_get_mclk(adev, false) * 10;
+		} else if (amdgpu_sriov_vf(adev) && amdgim_is_hwperf(adev) &&
+			   adev->virt.ops->get_pp_clk) {
+			dev_info.max_engine_clock = amdgpu_virt_get_sclk(adev, false) * 10;
+			dev_info.max_memory_clock = amdgpu_virt_get_mclk(adev, false) * 10;
 		} else {
 			dev_info.max_engine_clock = adev->clock.default_sclk * 10;
 			dev_info.max_memory_clock = adev->clock.default_mclk * 10;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index 5540259..0162d1e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -380,6 +380,17 @@ static ssize_t amdgpu_set_dpm_forced_performance_level(struct device *dev,
 		goto fail;
 	}
 
+        if (amdgpu_sriov_vf(adev)) {
+                if (amdgim_is_hwperf(adev) &&
+                    adev->virt.ops->force_dpm_level) {
+                        mutex_lock(&adev->pm.mutex);
+                        adev->virt.ops->force_dpm_level(adev, level);
+                        mutex_unlock(&adev->pm.mutex);
+                        return count;
+                } else
+                        return -EINVAL;
+        }
+
 	if (current_level == level)
 		return count;
 
@@ -843,6 +854,10 @@ static ssize_t amdgpu_get_pp_dpm_sclk(struct device *dev,
 	struct drm_device *ddev = dev_get_drvdata(dev);
 	struct amdgpu_device *adev = ddev->dev_private;
 
+	if (amdgpu_sriov_vf(adev) && amdgim_is_hwperf(adev) &&
+	    adev->virt.ops->get_pp_clk)
+		return adev->virt.ops->get_pp_clk(adev, PP_SCLK, buf);
+
 	if (is_support_sw_smu(adev))
 		return smu_print_clk_levels(&adev->smu, PP_SCLK, buf);
 	else if (adev->powerplay.pp_funcs->print_clock_levels)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index 462a04e..7e7f9ed 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -375,4 +375,53 @@ void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev)
 	}
 }
 
+static uint32_t parse_clk(char *buf, bool min)
+{
+        char *ptr = buf;
+        uint32_t clk = 0;
+
+        do {
+                ptr = strchr(ptr, ':');
+                if (!ptr)
+                        break;
+                ptr+=2;
+                clk = simple_strtoul(ptr, NULL, 10);
+        } while (!min);
+
+        return clk * 100;
+}
+
+uint32_t amdgpu_virt_get_sclk(struct amdgpu_device *adev, bool lowest)
+{
+	char *buf = NULL;
+	uint32_t clk = 0;
+
+	buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	adev->virt.ops->get_pp_clk(adev, PP_SCLK, buf);
+	clk = parse_clk(buf, lowest);
+
+	kfree(buf);
+
+	return clk;
+}
+
+uint32_t amdgpu_virt_get_mclk(struct amdgpu_device *adev, bool lowest)
+{
+	char *buf = NULL;
+	uint32_t clk = 0;
+
+	buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	adev->virt.ops->get_pp_clk(adev, PP_MCLK, buf);
+	clk = parse_clk(buf, lowest);
+
+	kfree(buf);
+
+	return clk;
+}
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
index 722deef..584947b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
@@ -57,6 +57,8 @@ struct amdgpu_virt_ops {
 	int (*reset_gpu)(struct amdgpu_device *adev);
 	int (*wait_reset)(struct amdgpu_device *adev);
 	void (*trans_msg)(struct amdgpu_device *adev, u32 req, u32 data1, u32 data2, u32 data3);
+	int (*get_pp_clk)(struct amdgpu_device *adev, u32 type, char *buf);
+	int (*force_dpm_level)(struct amdgpu_device *adev, u32 level);
 };
 
 /*
@@ -83,6 +85,8 @@ enum AMDGIM_FEATURE_FLAG {
 	AMDGIM_FEATURE_GIM_LOAD_UCODES   = 0x2,
 	/* VRAM LOST by GIM */
 	AMDGIM_FEATURE_GIM_FLR_VRAMLOST = 0x4,
+	/* HW PERF SIM in GIM */
+	AMDGIM_FEATURE_HW_PERF_SIMULATION = (1 << 3),
 };
 
 struct amd_sriov_msg_pf2vf_info_header {
@@ -252,6 +256,8 @@ struct amdgpu_virt {
 	struct amdgpu_vf_error_buffer   vf_errors;
 	struct amdgpu_virt_fw_reserve	fw_reserve;
 	uint32_t gim_feature;
+	/* protect DPM events to GIM */
+	struct mutex                    dpm_mutex;
 };
 
 #define amdgpu_sriov_enabled(adev) \
@@ -278,6 +284,9 @@ static inline bool is_virtual_machine(void)
 #endif
 }
 
+#define amdgim_is_hwperf(adev) \
+	((adev)->virt.gim_feature & AMDGIM_FEATURE_HW_PERF_SIMULATION)
+
 bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev);
 void amdgpu_virt_init_setting(struct amdgpu_device *adev);
 uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg);
@@ -295,5 +304,7 @@ int amdgpu_virt_fw_reserve_get_checksum(void *obj, unsigned long obj_size,
 					unsigned int key,
 					unsigned int chksum);
 void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev);
+uint32_t amdgpu_virt_get_sclk(struct amdgpu_device *adev, bool lowest);
+uint32_t amdgpu_virt_get_mclk(struct amdgpu_device *adev, bool lowest);
 
 #endif
diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
index 73851eb..8dbad49 100644
--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
+++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
@@ -157,6 +157,82 @@ static void xgpu_ai_mailbox_trans_msg (struct amdgpu_device *adev,
 	xgpu_ai_mailbox_set_valid(adev, false);
 }
 
+static int xgpu_ai_get_pp_clk(struct amdgpu_device *adev, u32 type, char *buf)
+{
+        int r = 0;
+        u32 req, val, size;
+
+        if (!amdgim_is_hwperf(adev) || buf == NULL)
+                return -EBADRQC;
+
+        switch(type) {
+        case PP_SCLK:
+                req = IDH_IRQ_GET_PP_SCLK;
+                break;
+        case PP_MCLK:
+                req = IDH_IRQ_GET_PP_MCLK;
+                break;
+        default:
+                return -EBADRQC;
+        }
+
+        mutex_lock(&adev->virt.dpm_mutex);
+
+        xgpu_ai_mailbox_trans_msg(adev, req, 0, 0, 0);
+
+        r = xgpu_ai_poll_msg(adev, IDH_SUCCESS);
+        if (!r && adev->fw_vram_usage.va != NULL) {
+                val = RREG32_NO_KIQ(
+                        SOC15_REG_OFFSET(NBIO, 0,
+                                         mmBIF_BX_PF0_MAILBOX_MSGBUF_RCV_DW1));
+                size = strnlen((((char *)adev->virt.fw_reserve.p_pf2vf) +
+                                val), PAGE_SIZE);
+
+                if (size < PAGE_SIZE)
+                        strcpy(buf,((char *)adev->virt.fw_reserve.p_pf2vf + val));
+                else
+                        size = 0;
+
+                r = size;
+                goto out;
+        }
+
+        r = xgpu_ai_poll_msg(adev, IDH_FAIL);
+        if(r)
+                pr_info("%s DPM request failed",
+                        (type == PP_SCLK)? "SCLK" : "MCLK");
+
+out:
+        mutex_unlock(&adev->virt.dpm_mutex);
+        return r;
+}
+
+static int xgpu_ai_force_dpm_level(struct amdgpu_device *adev, u32 level)
+{
+        int r = 0;
+        u32 req = IDH_IRQ_FORCE_DPM_LEVEL;
+
+        if (!amdgim_is_hwperf(adev))
+                return -EBADRQC;
+
+        mutex_lock(&adev->virt.dpm_mutex);
+        xgpu_ai_mailbox_trans_msg(adev, req, level, 0, 0);
+
+        r = xgpu_ai_poll_msg(adev, IDH_SUCCESS);
+        if (!r)
+                goto out;
+
+        r = xgpu_ai_poll_msg(adev, IDH_FAIL);
+        if (!r)
+                pr_info("DPM request failed");
+        else
+                pr_info("Mailbox is broken");
+
+out:
+        mutex_unlock(&adev->virt.dpm_mutex);
+        return r;
+}
+
 static int xgpu_ai_send_access_requests(struct amdgpu_device *adev,
 					enum idh_request req)
 {
@@ -375,4 +451,6 @@ const struct amdgpu_virt_ops xgpu_ai_virt_ops = {
 	.reset_gpu = xgpu_ai_request_reset,
 	.wait_reset = NULL,
 	.trans_msg = xgpu_ai_mailbox_trans_msg,
+	.get_pp_clk = xgpu_ai_get_pp_clk,
+	.force_dpm_level = xgpu_ai_force_dpm_level,
 };
diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h
index b4a9cee..39d151b 100644
--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h
+++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h
@@ -35,6 +35,10 @@ enum idh_request {
 	IDH_REL_GPU_FINI_ACCESS,
 	IDH_REQ_GPU_RESET_ACCESS,
 
+	IDH_IRQ_FORCE_DPM_LEVEL = 10,
+	IDH_IRQ_GET_PP_SCLK,
+	IDH_IRQ_GET_PP_MCLK,
+
 	IDH_LOG_VF_ERROR       = 200,
 };
 
@@ -43,6 +47,8 @@ enum idh_event {
 	IDH_READY_TO_ACCESS_GPU,
 	IDH_FLR_NOTIFICATION,
 	IDH_FLR_NOTIFICATION_CMPL,
+	IDH_SUCCESS,
+	IDH_FAIL,
 	IDH_EVENT_MAX
 };
 
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related

* [OSSTEST PATCH 34/62] TestSupport: Move `stashed files' and `next_unique_name' earlier
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

We are going to make more use of this in intervening code.

Pure code motion.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/TestSupport.pm | 78 +++++++++++++++++++++++++-------------------------
 1 file changed, 39 insertions(+), 39 deletions(-)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 41f6f5f8..ce346097 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -300,6 +300,45 @@ sub get_filecontents ($;$) {
     return $data;
 }
 
+#---------- stashed files ----------
+
+sub next_unique_name ($) {
+    my ($fnref) = @_;
+    my $num = $$fnref =~ s/\+([1-9]\d*)$// ? $1 : 0;
+    $$fnref .= '+'.($num+1);
+}
+
+sub open_unique_stashfile ($) {
+    my ($leafref) = @_;
+    my $dh;
+    for (;;) {
+        my $df= $$leafref;
+        $dh= new IO::File "$stash/$df", O_RDWR|O_EXCL|O_CREAT;
+        last if $dh;
+        die "$df $!" unless $!==&EEXIST;
+        next_unique_name $leafref;
+    }
+    return $dh;
+}
+
+sub get_stashed ($$) {
+    my ($param, $otherflightjob) = @_; 
+    # may be run outside transaction, or with flights locked
+    my ($oflight, $ojob) = otherflightjob($otherflightjob);
+    my $path= get_runvar($param, $otherflightjob);
+    die "$path $& " if
+        $path =~ m,[^-+._0-9a-zA-Z/], or
+        $path =~ m/\.\./;
+    return "$c{Stash}/$oflight/$ojob/$path";
+}
+
+sub compress_stashed($) {
+    my ($path) = @_;
+    return unless -e "$stash/$path";
+    my $r= system 'gzip','-9vf','--',"$stash/$path";
+    die "$r $!" if $r;
+}
+
 #---------- runvars ----------
 
 sub store_runvar ($$) {
@@ -597,12 +636,6 @@ sub target_file_exists ($$) {
     die "$rfile $out ?";
 }
 
-sub next_unique_name ($) {
-    my ($fnref) = @_;
-    my $num = $$fnref =~ s/\+([1-9]\d*)$// ? $1 : 0;
-    $$fnref .= '+'.($num+1);
-}
-
 our $target_editfile_cancel_exception =
     bless { }, 'Osstest::TestSupport::TargetEditfileCancelException';
 
@@ -1369,39 +1402,6 @@ sub hostnamepath ($) {
     join '_', reverse @l;
 }
 
-#---------- stashed files ----------
-
-sub open_unique_stashfile ($) {
-    my ($leafref) = @_;
-    my $dh;
-    for (;;) {
-        my $df= $$leafref;
-        $dh= new IO::File "$stash/$df", O_RDWR|O_EXCL|O_CREAT;
-        last if $dh;
-        die "$df $!" unless $!==&EEXIST;
-        next_unique_name $leafref;
-    }
-    return $dh;
-}
-
-sub get_stashed ($$) {
-    my ($param, $otherflightjob) = @_; 
-    # may be run outside transaction, or with flights locked
-    my ($oflight, $ojob) = otherflightjob($otherflightjob);
-    my $path= get_runvar($param, $otherflightjob);
-    die "$path $& " if
-        $path =~ m,[^-+._0-9a-zA-Z/], or
-        $path =~ m/\.\./;
-    return "$c{Stash}/$oflight/$ojob/$path";
-}
-
-sub compress_stashed($) {
-    my ($path) = @_;
-    return unless -e "$stash/$path";
-    my $r= system 'gzip','-9vf','--',"$stash/$path";
-    die "$r $!" if $r;
-}
-
 #---------- other stuff ----------
 
 sub common_toolstack ($) {
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 33/62] ts-xen-build: Enable ITS driver in Xen
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Julien Grall
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Julien Grall <julien.grall@arm.com>

The ITS driver was added in Xen 4.10 as a technical preview feature.
However, it is required in order to boot Xen as Thunder-X because
PCI devices don't support legacy interrupt.

So enable CONFIG_ITS in our Xen build.

Signed-off-by: Julien Grall <julien.grall@arm.com>
---
 ts-xen-build | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ts-xen-build b/ts-xen-build
index 6ddfc533..1762cd61 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -128,6 +128,10 @@ END
 		echo >>xen/.config CONFIG_EXPERT=y
 		echo >>xen/.config CONFIG_HVM_FEP=y
 		echo >>xen/.config CONFIG_VERBOSE_DEBUG=y
+		# ITS driver is required to boot the Hardware Domain
+		# on Xen. For now (Xen 4.10/4.11 at at least),
+		# will be not built by default and gated by expert mode
+		echo >>xen/.config CONFIG_HAS_ITS=y
 	fi
 END
                );
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 35/62] TestSupport: Move `target_somefile_getleaf' earlier
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

We are going to make more use of this in intervening code.

Pure code motion.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/TestSupport.pm | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index ce346097..4e2f120a 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -504,6 +504,15 @@ sub remote_perl_script_done ($) {
     !$? or die "$thing->{What} $?";
 }
 
+sub target_somefile_getleaf ($$$) {
+    my ($lleaf_ref, $rdest, $ho) = @_;
+    if (!defined $$lleaf_ref) {
+        $$lleaf_ref= $rdest;
+        $$lleaf_ref =~ s,.*/,,;
+    }
+    $$lleaf_ref= hostnamepath($ho)."--$$lleaf_ref";
+}
+
 sub sshuho ($$) { my ($user,$ho)= @_; return "$user\@$ho->{Ip}"; }
 
 sub sshopts () {
@@ -591,15 +600,6 @@ sub target_install_packages_norec ($@) {
     target_run_pkgmanager_install($ho,\@packages,1);
 }
 
-sub target_somefile_getleaf ($$$) {
-    my ($lleaf_ref, $rdest, $ho) = @_;
-    if (!defined $$lleaf_ref) {
-        $$lleaf_ref= $rdest;
-        $$lleaf_ref =~ s,.*/,,;
-    }
-    $$lleaf_ref= hostnamepath($ho)."--$$lleaf_ref";
-}
-
 sub tpfcs_core {
     my ($tputfilef,$ho,$timeout,$filedata, $rdest,$lleaf) = @_;
     target_somefile_getleaf(\$lleaf,$rdest,$ho);
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 32/62] ts-kernel-build: Enable some additional drivers for Thunder-X
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

Without this, our kernels do not find the storage.

Suggested-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-kernel-build | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/ts-kernel-build b/ts-kernel-build
index 0bc443de..3dad7d36 100755
--- a/ts-kernel-build
+++ b/ts-kernel-build
@@ -242,6 +242,17 @@ setopt CONFIG_MMC_DW m
 setopt CONFIG_MMC_DW_EXYNOS m
 setopt CONFIG_REGULATOR_S5M8767 m
 
+# Enable some additonal drivers for Thunder-X
+setopt CONFIG_PCI_HOST_THUNDER_PEM=y
+setopt CONFIG_PCI_HOST_THUNDER_ECAM=y
+setopt CONFIG_THUNDER_NIC_PF=m
+setopt CONFIG_THUNDER_NIC_VF=m
+setopt CONFIG_THUNDER_NIC_BGX=m
+setopt CONFIG_THUNDER_NIC_RGX=m
+setopt CONFIG_MDIO_THUNDER=m
+setopt CONFIG_I2C_THUNDERX=m
+setopt CONFIG_SPI_THUNDERX=m
+
 ####
 
 END
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 30/62] persistent-net: Include initramfs script to copy to target
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

This is the piece which actually copies the installer's network names
to the target.  It should not appear on the installed system, so it's
not in overlay-persistent-net.

Technically this is only useful when the installer has the
overlay-persistent-net in it, which is done only in ts-host-install
and not in all the places where setup_netboot_firstboot is used.
But without overlay-persistent-net it is harmless, and it is most
convenient to put it here.

The little script fragment was copied out of a jessie debian-installer
initramfs environment.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index e246c012..6309b246 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -848,6 +848,19 @@ if [ -f /target$grub ] ; then
 fi
 END
 
+    # See comment in debian_overlays re net.ifnames=1
+    $ho->{Suite} =~ m/jessie|wheezy/ or
+	preseed_hook_installscript($ho, $sfx,
+            '/usr/lib/base-installer.d/', '05udev', <<'END');
+#!/bin/sh -e
+
+RULESDIR=etc/udev/rules.d
+
+mkdir -p /target/$RULESDIR
+cp /$RULESDIR/70-persistent-*.rules /target/$RULESDIR 2>/dev/null || true
+
+END
+
     debian_overlays($ho, sub {
 	my ($srcdir, $tfilename) = @_;
 	preseed_hook_overlay($ho, $sfx, $srcdir, $tfilename);
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 29/62] ts-host-install: Put canary in 70-persistent-net.rules
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

This will allow us to see if the initramfs's network names are being
properly copied to the installed system.  Ie, this is just a debugging
aid.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-host-install | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ts-host-install b/ts-host-install
index 7423eb9b..ea087a25 100755
--- a/ts-host-install
+++ b/ts-host-install
@@ -218,6 +218,10 @@ SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$ho->{Ether}", A
 END
     }
 
+    open CANARY, '>>', "$persistent_net_rules" or die $!;
+    print CANARY "\n# - canary - came via initramfs\n" or die $!;
+    close CANARY or die $!;
+
     my %xopts;
 
     di_special_kernel($ho, sub {
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 18/62] Drop rumprun tests
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

From: Wei Liu <wei.liu2@citrix.com>

These have been failing for some time and it doesn't any more look
like this will be an attractive route to stub device models.  (At
least two Xen downstream projects are using Linux-based stub device
models.)

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
v4: Expand commit message.
---
 Osstest/RumpRun.pm                                |  68 -------------
 Osstest/Toolstack/rumprun.pm                      |  33 -------
 allow.all                                         |   1 -
 allow.rumprun                                     |   1 -
 ap-common                                         |   7 --
 ap-fetch-version                                  |   4 -
 ap-fetch-version-old                              |   5 -
 ap-print-url                                      |   3 -
 ap-push                                           |   5 -
 cr-daily-branch                                   |   9 --
 cri-common                                        |   1 -
 crontab                                           |   4 +-
 daily-cron-email-real--rumpuserxen                |   4 -
 daily-cron-email-real-bisectcomplete--rumpuserxen |   4 -
 make-flight                                       |  35 -------
 mfi-common                                        |  37 -------
 sg-run-job                                        |  26 -----
 ts-rumprun-bake                                   |  88 -----------------
 ts-rumprun-build                                  | 103 --------------------
 ts-rumprun-demo-build                             |  67 -------------
 ts-rumprun-demo-setup                             |  54 -----------
 ts-rumprun-demo-xenstorels                        | 113 ----------------------
 ts-rumprun-test-prep                              |  37 -------
 23 files changed, 2 insertions(+), 707 deletions(-)
 delete mode 100644 Osstest/RumpRun.pm
 delete mode 100644 Osstest/Toolstack/rumprun.pm
 delete mode 100644 allow.rumprun
 delete mode 100644 daily-cron-email-real--rumpuserxen
 delete mode 100644 daily-cron-email-real-bisectcomplete--rumpuserxen
 delete mode 100755 ts-rumprun-bake
 delete mode 100755 ts-rumprun-build
 delete mode 100755 ts-rumprun-demo-build
 delete mode 100755 ts-rumprun-demo-setup
 delete mode 100755 ts-rumprun-demo-xenstorels
 delete mode 100755 ts-rumprun-test-prep

diff --git a/Osstest/RumpRun.pm b/Osstest/RumpRun.pm
deleted file mode 100644
index f46d520b..00000000
--- a/Osstest/RumpRun.pm
+++ /dev/null
@@ -1,68 +0,0 @@
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 2009-2013 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/>.
-
-
-package Osstest::RumpRun;
-
-use strict;
-use warnings;
-
-use Osstest::TestSupport;
-
-BEGIN {
-    use Exporter ();
-    our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-    $VERSION     = 1.00;
-    @ISA         = qw(Exporter);
-    @EXPORT      = qw(
-		      rumprun_guest_create
-		    );
-    %EXPORT_TAGS = ( );
-
-    @EXPORT_OK   = qw();
-}
-
-sub rumprun_guest_create ($) {
-    my ($gho) = @_;
-    my $ho = $gho->{Host};
-    my $gn = $gho->{Guest};
-    guest_prepare_disk($gho);
-
-    my $rumprun = target_var($gho, 'rumprun_path');
-    if (!$rumprun) {
-	logm("finding rumprun to use for $gho->{Name} on $ho->{Name}");
-	my $buildjob = $r{guests_rumprunbuildjob} // # todo: eliminate this
-	    target_var($gho, 'rumprunbuildjob');
-	my $rumprundist = target_extract_jobdistpath_subdir
-	    ($ho, "rumprun-rumprun-g-$gho->{Name}", "rumprun", $buildjob);
-	$rumprun = "$rumprundist/rumprun";
-	store_runvar("${gn}_rumprun_path", $rumprun);
-    }
-
-    my $imagepath = $r{"${gn}_imagepath"};
-    my $cmdline = guest_var($gho, 'cmdline', undef);
-
-    my $cmd = "$rumprun xen";
-    $cmd .= " -N $gn";
-    $cmd .= " -I xenif0,xenif,mac=$gho->{Ether}";
-    $cmd .= " -W xenif0,inet,dhcp";
-    $cmd .= " $imagepath";
-    $cmd .= " $cmdline";
-
-    target_cmd_root($ho, $cmd, 100);
-}
-
-1;
diff --git a/Osstest/Toolstack/rumprun.pm b/Osstest/Toolstack/rumprun.pm
deleted file mode 100644
index 74742c45..00000000
--- a/Osstest/Toolstack/rumprun.pm
+++ /dev/null
@@ -1,33 +0,0 @@
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 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/>.
-
-
-package Osstest::Toolstack::rumprun;
-
-use strict;
-use warnings;
-
-use Osstest::RumpRun;
-
-# Defer to xl driver for most things
-use parent qw(Osstest::Toolstack::xl);
-
-sub create ($$) {
-    my ($self,$gho) = @_;
-    rumprun_guest_create($gho);
-}
-
-1;
diff --git a/allow.all b/allow.all
index 5d8d9cb7..894b69ea 100644
--- a/allow.all
+++ b/allow.all
@@ -3,6 +3,5 @@ build-@@                        logs-capture@@
 test-@@-pcipt@@
 test-@@-qemuu-@@		guest-localmigrate
 test-@@-win7-@@			guest-stop
-test-@@-rumprun-@@		rumprun-demo-xenstorels/xenstorels.repeat
 @@-arm64			hosts-allocate
 @@-arm64-@@			hosts-allocate
diff --git a/allow.rumprun b/allow.rumprun
deleted file mode 100644
index 436417b1..00000000
--- a/allow.rumprun
+++ /dev/null
@@ -1 +0,0 @@
-!test-@@-rumprun-@@		rumprun-demo-xenstorels/xenstorels.repeat
diff --git a/ap-common b/ap-common
index 87df7948..6ae7cce6 100644
--- a/ap-common
+++ b/ap-common
@@ -45,12 +45,6 @@
 : ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
 : ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
 
-: ${TREE_RUMPRUN:=https://github.com/rumpkernel/rumprun}
-# ^ really http://repo.rumpkernel.org/rumprun
-: ${TREEVCS_RUMPRUN:=git}
-: ${BASE_TREE_RUMPRUN:=git://xenbits.xen.org/osstest/rumprun.git}
-: ${PUSH_TREE_RUMPRUN:=$XENBITS:/home/xen/git/osstest/rumprun.git}
-
 : ${TREE_SEABIOS_UPSTREAM:=https://git.seabios.org/seabios.git}
 : ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git}
 : ${BASE_TREE_SEABIOS:=git://xenbits.xen.org/osstest/seabios.git}
@@ -83,7 +77,6 @@ fi
 : ${LOCALREV_XEN:=daily-cron.$branch}
 : ${LOCALREV_LINUX:=daily-cron.$branch}
 : ${LOCALREV_LIBVIRT:=daily-cron.$branch}
-: ${LOCALREV_RUMPRUN:=daily-cron.$branch}
 : ${LOCALREV_SEABIOS:=daily-cron.$branch}
 : ${LOCALREV_OVMF:=daily-cron.$branch}
 : ${LOCALREV_XTF:=daily-cron.$branch}
diff --git a/ap-fetch-version b/ap-fetch-version
index 87725bf0..9abfbcb5 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -90,10 +90,6 @@ libvirt)
 	repo_tree_rev_fetch_git libvirt \
 		$TREE_LIBVIRT master $LOCALREV_LIBVIRT
 	;;
-rumprun)
-	repo_tree_rev_fetch_git rumprun \
-		$TREE_RUMPRUN master $LOCALREV_RUMPRUN
-	;;
 seabios)
 	repo_tree_rev_fetch_git seabios \
 		$TREE_SEABIOS_UPSTREAM master $LOCALREV_SEABIOS
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index 18213e01..420db9f6 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -30,7 +30,6 @@ check_ap_fetch_placeholders
 : ${BASE_TAG_LINUX2639:=tested/2.6.39.x}
 : ${BASE_LOCALREV_LINUX:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_LIBVIRT:=daily-cron.$branch.old}
-: ${BASE_LOCALREV_RUMPRUN:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_SEABIOS:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_XTF:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_OVMF:=daily-cron.$branch.old}
@@ -99,10 +98,6 @@ libvirt)
 	repo_tree_rev_fetch_git libvirt \
 		$BASE_TREE_LIBVIRT $BASE_TAG_LIBVIRT $BASE_LOCALREV_LIBVIRT
 	;;
-rumprun)
-	repo_tree_rev_fetch_git rumprun \
-		$BASE_TREE_RUMPRUN xen-tested-master $BASE_LOCALREV_RUMPRUN
-	;;
 seabios)
 	repo_tree_rev_fetch_git seabios \
 		$BASE_TREE_SEABIOS xen-tested-master $BASE_LOCALREV_SEABIOS
diff --git a/ap-print-url b/ap-print-url
index e9934bc0..27bdbfae 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -52,9 +52,6 @@ linuxfirmware)
 libvirt)
 	echo $TREE_LIBVIRT
 	;;
-rumprun)
-	echo $TREE_RUMPRUN
-	;;
 seabios)
 	echo $TREE_SEABIOS_UPSTREAM
 	;;
diff --git a/ap-push b/ap-push
index ded33f63..eb212c05 100755
--- a/ap-push
+++ b/ap-push
@@ -37,7 +37,6 @@ TREE_LINUX=$PUSH_TREE_LINUX
 TREE_QEMU_UPSTREAM=$PUSH_TREE_QEMU_UPSTREAM
 TREE_XEN=$PUSH_TREE_XEN
 TREE_LIBVIRT=$PUSH_TREE_LIBVIRT
-TREE_RUMPRUN=$PUSH_TREE_RUMPRUN
 TREE_SEABIOS=$PUSH_TREE_SEABIOS
 TREE_OVMF=$PUSH_TREE_OVMF
 TREE_XTF=$PUSH_TREE_XTF
@@ -114,10 +113,6 @@ libvirt)
 	cd $repos/libvirt
 	git push $TREE_LIBVIRT $revision:refs/heads/xen-tested-master
 	;;
-rumprun)
-	cd $repos/rumprun
-	git push $TREE_RUMPRUN $revision:refs/heads/xen-tested-master
-	;;
 seabios)
 	cd $repos/seabios
 	git push $TREE_SEABIOS $revision:refs/heads/xen-tested-master
diff --git a/cr-daily-branch b/cr-daily-branch
index 49b8ad8e..5698b083 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -223,10 +223,6 @@ if [ "x$REVISION_LIBVIRT" = x ]; then
 	determine_version REVISION_LIBVIRT libvirt LIBVIRT
 	export REVISION_LIBVIRT
 fi
-if [ "x$REVISION_RUMPRUN" = x ]; then
-	determine_version REVISION_RUMPRUN rumprun RUMPRUN
-	export REVISION_RUMPRUN
-fi
 if [ "x$REVISION_XTF" = x ]; then
 	determine_version REVISION_XTF xtf XTF
 	export REVISION_XTF
@@ -278,11 +274,6 @@ libvirt)
 	realtree=libvirt
 	NEW_REVISION=$REVISION_LIBVIRT
 	;;
-rumprun)
-	realtree=rumprun
-	NEW_REVISION=$REVISION_RUMPRUN
-	export REVISION_LIBVIRT=disable
-	;;
 seabios)
 	realtree=seabios
 	NEW_REVISION=$REVISION_SEABIOS
diff --git a/cri-common b/cri-common
index 8d2d26cf..5a425824 100644
--- a/cri-common
+++ b/cri-common
@@ -76,7 +76,6 @@ select_xenbranch () {
 	linux-*)		tree=linux;	xenbranch=xen-unstable ;;
 	linuxfirmware)	    tree=linuxfirmware;	xenbranch=xen-unstable ;;
 	libvirt)		tree=libvirt;	xenbranch=xen-unstable ;;
-	rumprun)	      tree=rumprun; xenbranch=xen-unstable ;;
 	seabios)		tree=seabios;	xenbranch=xen-unstable ;;
 	xtf)			tree=xtf;	xenbranch=xen-unstable ;;
 	ovmf)			tree=ovmf;	xenbranch=xen-unstable ;;
diff --git a/crontab b/crontab
index e1e798a5..8d9b31f1 100755
--- a/crontab
+++ b/crontab
@@ -14,8 +14,8 @@ MAILTO=osstest-admin@xenproject.org
 18		9	* * 1,3,5	cd testing.git && BRANCHES='linux-next freebsd-master' 	./cr-for-branches branches -w "./cr-daily-branch --real"
 18		9	* * 3,7		cd testing.git && BRANCHES=xen-unstable-coverity ./cr-for-branches branches -w "./cr-daily-branch --real"
 34		15	23 * *		cd testing.git && BRANCHES=examine		./cr-for-branches branches -w "./cr-daily-branch --real"
-18		4	* * *		cd testing.git && BRANCHES='linux-3.0 libvirt rumprun' ./cr-for-branches branches -w "./cr-daily-branch --real"
-6-59/15   	*	* * *		cd testing.git && EXTRA_BRANCHES='xen-unstable-smoke linux-3.0 rumprun libvirt freebsd-master' ./cr-for-branches bisects -w "./cr-try-bisect --real"
+18		4	* * *		cd testing.git && BRANCHES='linux-3.0 libvirt' ./cr-for-branches branches -w "./cr-daily-branch --real"
+6-59/15   	*	* * *		cd testing.git && EXTRA_BRANCHES='xen-unstable-smoke linux-3.0 libvirt freebsd-master' ./cr-for-branches bisects -w "./cr-try-bisect --real"
 #8-59/5		*	* * *		cd bisects/adhoc.git &&	with-lock-ex -q data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
 22		8	* * *		cd testing.git && BRANCHES=maintjobs		./cr-for-branches . -w ./cr-all-branch-statuses ''
 3		4	* * *		savelog -c28 testing.git/tmp/cr-for-branches.log >/dev/null
diff --git a/daily-cron-email-real--rumpuserxen b/daily-cron-email-real--rumpuserxen
deleted file mode 100644
index 8f950780..00000000
--- a/daily-cron-email-real--rumpuserxen
+++ /dev/null
@@ -1,4 +0,0 @@
-To: xen-devel@lists.xenproject.org,
-    rumpkernel-builds@freelists.org,
-    osstest-admin@xenproject.org
-Bcc: osstest-output@lists.xenproject.org
diff --git a/daily-cron-email-real-bisectcomplete--rumpuserxen b/daily-cron-email-real-bisectcomplete--rumpuserxen
deleted file mode 100644
index 8f950780..00000000
--- a/daily-cron-email-real-bisectcomplete--rumpuserxen
+++ /dev/null
@@ -1,4 +0,0 @@
-To: xen-devel@lists.xenproject.org,
-    rumpkernel-builds@freelists.org,
-    osstest-admin@xenproject.org
-Bcc: osstest-output@lists.xenproject.org
diff --git a/make-flight b/make-flight
index 2f875125..151b1435 100755
--- a/make-flight
+++ b/make-flight
@@ -85,14 +85,6 @@ job_create_build_filter_callback () {
         *)			return 1 ;;
       esac
     ;;
-    rumprun)
-      case "$job" in
-        build-*-pvops)		;;
-        build-*-rumprun)	;;
-        build-*-*)		return 1 ;;
-        *)			;;
-      esac
-    ;;
   esac
   return 0
 }
@@ -139,15 +131,6 @@ job_create_test_filter_callback () {
     libvirt)
       if [ x$toolstack != xlibvirt ] ; then return 1; fi
       ;;
-    rumprun)
-      case "$job" in
-      *-rumprun-*)
-          ;;
-      *)
-          : "suppressed $job"
-          return 1;;
-      esac
-      ;;
     xtf)
       case "$xenarch:$dom0arch" in
           amd64:amd64) ;;
@@ -211,7 +194,6 @@ arch_branch_filter_callback () {
         qemu-upstream-4.2-testing) return 1;;
         qemu-upstream-4.3-testing) return 1;;
         qemu-upstream-4.4-testing) return 1;;
-        rumprun) return 1;;
         seabios) return 1;;
         ovmf) return 1;;
         esac
@@ -235,21 +217,6 @@ test_matrix_branch_filter_callback () {
   return 0
 }
 
-do_rumpkernel_tests () {
-  branch_wants_rumpkernel_tests || return 0
-
-  rumparch=$dom0arch
-  job_create_test test-$xenarch$kern-$dom0arch-rumprun-$rumparch \
-                      test-rumprun xl \
-            $xenarch $dom0arch                                       \
-            guests_rumprunbuildjob=${bfi}build-$rumparch-rumprun   \
-            nettest_builtimage=rumpimages:nettest \
-            nettest_cmdline=4096 \
-            xenstorels_builtimage=rumpimages:xenstorels              \
-            xenstorels_cmdline='ls -fp device'                       \
-            all_hostflags=$most_hostflags
-}
-
 do_freebsd_tests () {
 
   if [ $xenarch != amd64 -o $dom0arch != i386 -o "$kern" != "" ]; then
@@ -769,8 +736,6 @@ test_matrix_do_one () {
   *)                test_shim=y ;;
   esac
 
-  do_rumpkernel_tests
-
   # xend PV guest test on x86 only
   if [ x$test_xend = xy -a \( $dom0arch = "i386" -o $dom0arch = "amd64" \) ]; then
     job_create_test test-$xenarch$kern-$dom0arch-pv test-debian xend \
diff --git a/mfi-common b/mfi-common
index 83d3c713..f91156fe 100644
--- a/mfi-common
+++ b/mfi-common
@@ -31,16 +31,6 @@ stripy () {
   eval "$out_vn=\"\$out_$out_val\""
 }
 
-branch_wants_rumpkernel_tests () {
-  case "$branch" in
-  osstest*) return 0;;
-  rump*)    return 0;;
-  xen-*)    return 0;;
-  linux*)   return 0;;
-  *)        return 1;;
-  esac
-}
-
 branch_wants_migrupgrade_tests () {
   case "$branch" in
     xen-3.*-testing) return 1 ;;
@@ -445,33 +435,6 @@ create_build_jobs () {
         fi
     fi
 
-    if branch_wants_rumpkernel_tests; then
-
-    case $arch in
-    i386|amd64)
-    job_create_build build-$arch-rumprun build-rumprun               \
-                arch=$arch                                                   \
-        tree_xen=$TREE_XEN                                                   \
-                $RUNVARS $BUILD_RUNVARS $BUILD_RUMPRUN_RUNVARS $arch_runvars \
-                $hostos_runvars                                              \
-                host_hostflags=$build_hostflags                              \
-                buildjob=${bfi}build-$arch                                   \
-                tree_rumprun=$TREE_RUMPRUN			\
-          ${TREEVCS_RUMPRUN:+treevcs_rumprun=}${TREEVCS_RUMPRUN} \
-                revision_rumprun=$REVISION_RUMPRUN		\
-                tree_xen=$TREE_XEN                                           \
-                tree_qemuu=$TREE_QEMU_UPSTREAM                               \
-                revision_xen=$REVISION_XEN                                   \
-                revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
-                tree_rumprun_rumpsrc=$TREE_RUMPRUN_RUMPSRC	\
-                ${TREEVCS_RUMPRUN_RUMPSRC:+treevcs_rumprun_rumpsrc=}${TREEVCS_RUMPRUN_RUMPSRC}
-                # rumpsrc-related runvars needed only for old rumpuser-xen
-                # (ie ones which need $bodges=1 in ts-rumprun-build)
-		;;
-    esac
-
-    fi
-
     case "$arch" in
     arm*) continue;; # don't do any other kernel builds
     esac
diff --git a/sg-run-job b/sg-run-job
index 7d27f415..56b6384a 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -649,22 +649,6 @@ proc test-guest-nomigr {g} {
     run-ts . =   ts-guest-destroy + host $g
 }
 
-proc need-hosts/test-rumprun {} { return host }
-proc run-job/test-rumprun {} {
-    run-ts . =   ts-rumprun-test-prep       + host
-    set g nettest
-    run-ts . =   ts-rumprun-demo-setup      + host $g
-    run-ts . =   ts-guest-start             + host $g
-    run-ts . =   ts-guest-destroy           + host $g
-    set g xenstorels
-    run-ts . =   ts-rumprun-demo-setup      + host + $g
-    run-ts . =   ts-rumprun-demo-xenstorels + host + $g
-    run-ts . =   ts-guest-destroy-hard      + host + $g
-    repeat-ts 150 =.repeat \
-                 ts-rumprun-demo-xenstorels + host + $g   + \; \
-                 ts-guest-destroy-hard        host   $g   +
-}
-
 if {[file exists sg-run-job-adhoc]} {
     source sg-run-job-adhoc
 }
@@ -712,7 +696,6 @@ proc need-hosts/host-examine-linux {} { examine-host-examine debian }
 proc need-hosts/build {}                { return BUILD_LINUX }
 proc need-hosts/build-kern {}           { return BUILD_LINUX }
 proc need-hosts/build-libvirt {}        { return BUILD_LINUX }
-proc need-hosts/build-rumprun {}        { return BUILD_LINUX }
 proc need-hosts/build-xtf {}            { return BUILD_LINUX }
 proc need-hosts/build-freebsd {}        { return BUILD_FREEBSD }
 proc need-hosts/build-xen-freebsd {}    { return BUILD_FREEBSD }
@@ -729,15 +712,6 @@ proc run-job/build-libvirt {} {
     run-ts . = ts-libvirt-build
 }
 
-proc run-job/build-rumprun {} {
-    run-ts . = ts-rumprun-build
-    run-ts . = ts-rumprun-demo-build + host + nettest rump-test-net
-    run-ts . xen-build ts-xen-build-rump + host --no-kconfig --
-    run-ts . = ts-rumprun-bake + host \
-        nettest :nettest:/rump-test-net \
-        xenstorels ::/usr/local/bin/xenstore-ls
-}
-
 proc run-job/build-xtf {} {
     run-ts . = ts-xtf-build
 }
diff --git a/ts-rumprun-bake b/ts-rumprun-bake
deleted file mode 100755
index fc50db92..00000000
--- a/ts-rumprun-bake
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/perl -w
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 2009-2013 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/>.
-
-# ts-rumprun-bake HOST IMAGENAME [JOB]:DIST:SUBPATH [IMAGENAME ... [... ...]]
-#
-# Generates a dist stash `rumpimages' containg files IMAGENAME
-# From the specified files
-
-use strict qw(vars);
-use DBI;
-BEGIN { unshift @INC, qw(.); }
-use Osstest;
-use Osstest::TestSupport;
-use Osstest::BuildSupport;
-
-tsreadconfig();
-
-our ($whhost,$gn) = @ARGV;
-selectbuildhost(\@ARGV);
-
-
-
-our %images;
-
-our $jobdir = target_jobdir($ho);
-our $imagesdir = $jobdir.'/rumpbake-images';
-our $rumpbake = $jobdir.'/rumprun/rumprun/bin/rumprun-bake';
-
-target_cmd($ho, "mkdir -p $imagesdir");
-
-sub bakeimage ($$) {
-    my ($name,$spec) = @_;
-    
-    $spec =~ m/^(.*?)\:(.*?)\:/ or die "$spec ?";
-    my $buildjob = $1;
-    my $execpart = $2;
-    my $execpath = $';
-
-    logm("baking rump image $name from $spec");
-
-#    my $rumpbake = target_extract_jobdistpath_subdir
-#	($ho, 'rumpbake-base', 'rumprun', $r{guests_rumprunbuildjob});
-#    $rumpbake = "$rumpbake/rumpbake";
-
-    my $execdist;
-    eval {
-	$execdist = target_extract_jobdistpath_subdir
-	    ($ho, "rumpbake-n-$name", $execpart, $buildjob || $job);
-    };
-    if ($@) {
-	logm "*** WARNING: skipping $name: $@";
-	return;
-    }
-    my $execfile = $execdist.$execpath;
-
-    target_cmd_build($ho, 1000, $imagesdir, <<END);
-        ls -al $execfile
-        $rumpbake xen_pv $name $execfile
-END
-}
-
-sub stash () {
-    built_stash($ho, "$jobdir", "rumpbake-images", "rumpimagesdist");
-}
-
-while (@ARGV) {
-    die unless @ARGV>=2;
-    my $name = shift @ARGV;
-    my $rumpexec = shift @ARGV;
-
-    bakeimage($name,$rumpexec);
-}
-
-stash();
diff --git a/ts-rumprun-build b/ts-rumprun-build
deleted file mode 100755
index a09584c8..00000000
--- a/ts-rumprun-build
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/perl
-# 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;
-BEGIN { unshift @INC, qw(.); }
-use Osstest;
-use Osstest::TestSupport;
-use Osstest::BuildSupport;
-
-tsreadconfig();
-selectbuildhost(\@ARGV);
-builddirsprops();
-
-our %submodmap = qw(buildrump.sh buildrumpsh
-                    src-netbsd netbsdsrc);
-
-our ($rux);
-
-sub checkout () {
-    prepbuilddirs();
-    xendist();
-
-    build_clone($ho, 'rumprun', $builddir, 'rumprun');
-    my $submodules =
-	submodulefixup($ho, 'rumprun', 'rumprun', \%submodmap);
-    $rux = "$builddir/rumprun";
-}
-
-sub massage() {
-}
-
-sub build() {
-    my $debug_build = $r{rumprun_build_debug} || 'y';
-    target_cmd_build($ho, 7200, $rux, ($debug_build ? <<END : ''). <<END);
-        export RUMP_DEV_XEN_DEBUG=1
-END
-        export XEN_HEADERS=$xendist/usr/local/include/xen
-        (./build-rr.sh xen && touch ../build-ok-stamp) |tee ../log
-        test -f ../build-ok-stamp #/
-        echo ok.
-END
-}
-
-my $bindir;
-my $gnutriplet;
-my $ccachedir;
-
-sub findtools() {
-    my $gcc = target_cmd_output($ho, "echo $rux/rumprun/bin/*-gcc");
-    chomp $gcc;
-    die "$gcc ?" unless $gcc =~ m#^(\S+)/([^/ \t]+)-g?cc$#;
-    $bindir = $1;
-    $gnutriplet = $2;
-}
-
-sub setupccache() {
-    $ccachedir = "$bindir.ccache";
-    target_cmd_build($ho, 600, $rux, <<END);
-        mkdir $ccachedir
-        ccache=\$(type -p ccache)
-        for f in $bindir/$gnutriplet-*; do
-            ln -s \$ccache $ccachedir/\${f##*/}
-        done
-END
-}
-
-sub recordtools() {
-    my $prefix = "PATH=$ccachedir:$bindir:\$PATH ";
-    $prefix .= "CROSS_COMPILE=$gnutriplet- HOSTCC=gcc ";
-    store_runvar('cmdprefix_configure', $prefix);
-    store_runvar('cmdprefix_make',      $prefix);
-    store_runvar('cmdsuffix_configure', " --host=$gnutriplet");
-    # "host" is daft GCC/GNU terminology for the target architecture of
-    # a cross-compile, ie in our case the rump environemnt architecture
-    # for which the rump compilers are going to generate code.
-}
-
-sub install() {
-}
-
-checkout();
-massage();
-build();
-findtools();
-setupccache();
-recordtools();
-install();
-built_stash($ho, $builddir, 'rumprun/rumprun/bin', 'rumprundist');
diff --git a/ts-rumprun-demo-build b/ts-rumprun-demo-build
deleted file mode 100755
index 925727a0..00000000
--- a/ts-rumprun-demo-build
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl -w
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 2009-2013 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;
-BEGIN { unshift @INC, qw(.); }
-use Osstest;
-use File::Path;
-use POSIX;
-use Osstest::TestSupport;
-use Osstest::BuildSupport;
-
-tsreadconfig();
-selectbuildhost(\@ARGV);
-
-our $dokconfig = 1;
-
-while (@ARGV && $ARGV[0] =~ m/^-/) {
-    $_ = shift @ARGV;
-    last if m/^--$/;
-    die "$_ ?";
-}
-# remaining arguments are passed as targets to "make"
-
-die unless @ARGV==2;
-my ($demo,$bn) = @ARGV;
-
-builddirsprops();
-
-my $demodir;
-
-sub build () {
-    prepbuilddirs($demo);
-
-    $demodir = "$builddir/$demo";
-
-    target_putfile($ho, 30, "$bn.c", "$demodir/$bn.c");
-
-    my $make_prefix =      $r{cmdprefix_make}      // '';
-
-    target_cmd_build($ho, 300, $demodir, <<END);
-        set -x
-        $make_prefix
-        \${CROSS_COMPILE}gcc -Wall -o $bn $bn.c
-END
-}
-
-sub stash () {
-    built_stash($ho, $builddir, "$demo", "${demo}dist");
-}
-
-build();
-stash();
diff --git a/ts-rumprun-demo-setup b/ts-rumprun-demo-setup
deleted file mode 100755
index f293fd7e..00000000
--- a/ts-rumprun-demo-setup
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 2009-2013 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;
-BEGIN { unshift @INC, qw(.); }
-use Osstest;
-use Osstest::TestSupport;
-
-tsreadconfig();
-
-our ($whhost,$gn) = @ARGV;
-$whhost ||= 'host';
-$gn ||= 'rump';
-
-our $ho= selecthost($whhost);
-
-our $gho;
-
-our $rkdist;
-
-sub prep () {
-    $gho = prepareguest($ho, $gn, $gn, 4096, undef, 30);
-
-    my $builtimage = guest_var($gho, 'builtimage', undef);
-    my $buildjob = guest_var($gho, 'rumprunbuildjob', undef);
-
-    $builtimage =~ m/\:/ or die "$builtimage ?";
-    my $builtimage_part = $`;
-    my $builtimage_subpath = $'; #';
-
-    $rkdist = target_extract_jobdistpath_subdir
-       ($ho, "rumprun-g-$gn", $builtimage_part, $buildjob);
-    my $imagepath = $rkdist.'/'.$builtimage_subpath;
-
-    store_runvar("${gn}_imagepath", $imagepath);
-    store_runvar("${gn}_toolstack", 'rumprun');
-}
-
-prep();
diff --git a/ts-rumprun-demo-xenstorels b/ts-rumprun-demo-xenstorels
deleted file mode 100755
index cfc6a903..00000000
--- a/ts-rumprun-demo-xenstorels
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/perl -w
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 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;
-BEGIN { unshift @INC, qw(.); }
-use Osstest;
-use Osstest::TestSupport;
-use Osstest::RumpRun;
-use Data::Dumper;
-
-tsreadconfig();
-
-our ($ho,$gho) = ts_get_host_guest(@ARGV);
-
-our $domid;
-
-our $gn = $gho->{Guest};
-
-sub start () {
-    rumprun_guest_create($gho);
-
-    $domid = guest_find_domid($ho, $gho);
-}
-
-sub await_end () {
-    poll_loop(30,3, "await ending of $gho->{Guest}", sub {
-        my $st= guest_get_state($ho,$gho);
-	return undef if $st =~ m/s/;
-        return "guest state is $st";
-    });
-}
-
-our (%file);
-our (%output);
-
-sub stash ($$) {
-    my ($data, $what) = @_;
-    my $leaf = "xenstore-ls-device--$gn--$what";
-    my $stashh = open_unique_stashfile(\$leaf);
-    print $stashh $data or die $!;
-    close $stashh or die $!;
-    $file{$what} = "$stash/$leaf";
-}
-
-sub some_xenstorels ($$$) {
-    my ($what, $massage, $cmd) = @_;
-    $output{$what} = target_cmd_output_root($ho,$cmd);
-    stash($output{$what}, "$what-raw");
-    $massage->();
-    $output{$what} = join "\n", sort split /\n/, $output{$what};
-    $output{$what} .= "\n";
-    stash($output{$what}, "$what-massaged");
-}
-
-sub our_xenstorels () {
-    some_xenstorels('ours', sub {
-	$output{ours} =~ s{^/local/domain/$domid/}{}gm;
-    }, <<END);
-        xenstore-ls -fp /local/domain/$domid/device
-END
-}
-
-sub their_xenstorels () {
-    some_xenstorels('theirs', sub {
-	$output{theirs} =~ s{\r\n}{\n}g;
-	while ($output{theirs} =~ m{\n=== calling ".*" main\(\) ===\n\n}) {
-	    $output{theirs} = $'; #';
-	}
-	$output{theirs} =~ m{\n=== main\(\) .* returned (\d+) ===\n} or die;
-	$output{theirs} = $`;
-	die "EXIT STATUS $1 ?" if $1 ne '0';
-	$output{theirs} =~ s{^STUB \`\`\w+'' called\n}{}mg;
-	$output{theirs} =~ s{^/dev/xen/xenbus[:[].*\n}{}mg;
-	$output{theirs} =~ s{^xen devsw:.*\n}{}mg;
-    }, <<END);
-        cat /var/log/xen/console/guest-$gn.log
-END
-}
-
-sub check_output () {
-    eval {
-	our_xenstorels();
-	their_xenstorels();
-	1;
-    };
-    if ($@) {
-	die Dumper(\%output)."$@";
-    }
-    if ($output{ours} ne $output{theirs}) {
-	system qw(diff -u), map { $file{"$_-massaged"} } qw(ours theirs);
-	die "$? COMPARISON FAILED";
-    }
-}
-
-start();
-await_end();
-check_output();
-logm("all good.");
diff --git a/ts-rumprun-test-prep b/ts-rumprun-test-prep
deleted file mode 100755
index 67371710..00000000
--- a/ts-rumprun-test-prep
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/perl -w
-# This is part of "osstest", an automated testing framework for Xen.
-# Copyright (C) 2009-2013 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;
-BEGIN { unshift @INC, qw(.); }
-use Osstest;
-use POSIX;
-use Osstest::TestSupport;
-use Osstest::Debian;
-
-tsreadconfig();
-
-our ($whhost) = @ARGV;
-$whhost ||= 'host';
-our $ho= selecthost($whhost);
-
-sub packages () {
-    target_install_packages($ho,
-			    qw(binutils));
-}
-
-packages();
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 19/62] Debian: Fix http:// url for bugs.xenproject.org
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 80b4cf37..414cd897 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -239,7 +239,7 @@ END
 	# Dom0 specific kernel options
 	my @xenkopt = @kopt;
 	push @xenkopt, $xenkopt;
-	# http://bugs.xenproject.org/xen/bug/45
+	# https://bugs.xenproject.org/xen/bug/45
 	push @xenkopt, "clk_ignore_unused"
 	    if $ho->{Suite} =~ m/wheezy|jessie|stretch/;
 
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related

* [OSSTEST PATCH 27/62] ts-host-install: Break out $persistent_net_rules
From: Ian Jackson @ 2019-04-10 14:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson
In-Reply-To: <20190410142408.22848-1-ian.jackson@eu.citrix.com>

We're going to want to reuse this value.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-host-install | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ts-host-install b/ts-host-install
index 8ea81e24..f80a151c 100755
--- a/ts-host-install
+++ b/ts-host-install
@@ -195,6 +195,9 @@ sub setup_netboot_firstboot($) {
 	system_checked @cmd;
     }
 
+    my $persistent_net_rules =
+	"$initrd_overlay.d/etc/udev/rules.d/70-persistent-net.rules";
+
     my $ipappend = 2;
     my $wantphysif= get_host_property($ho,'interface force','auto');
     logm("Forcing interface $wantphysif");
@@ -206,7 +209,7 @@ sub setup_netboot_firstboot($) {
 	# ip(8) moved to /sbin in Jessie
 	my $ipcmd = $ho->{Suite} =~ m/wheezy/ ? "/bin/ip" : "/sbin/ip";
         file_simple_write_contents
-            ("$initrd_overlay.d/etc/udev/rules.d/70-persistent-net.rules",
+            ($persistent_net_rules,
              $ho->{Flags}{'force-mac-address'} ? <<END : <<END);
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNEL=="$wantphysif", RUN += "$ipcmd link set $wantphysif address $ho->{Ether}"
 END
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related


This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.