]> xenbits.xensource.com Git - people/aperard/centos-package-xen.git/commitdiff
Backport fixes for tapdisk with HVM domains
authorGeorge Dunlap <george.dunlap@eu.citrix.com>
Thu, 11 Dec 2014 15:23:55 +0000 (15:23 +0000)
committerGeorge Dunlap <george.dunlap@eu.citrix.com>
Thu, 11 Dec 2014 15:51:16 +0000 (15:51 +0000)
Backport git id 16529572, which passes the correct file path, and
an acked-but-not-committed patch which passes the correct format.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
SOURCES/xen-queue.am
SPECS/xen.spec

index 3247e83d6147c0c00ee6237cea297a1cf759fb6c..3de3f2a9cf8eeaf98ea35dacdfbd2b0aa1d7a2e5 100644 (file)
@@ -1,4 +1,4 @@
-From 339f5bfe2118628b62626226158301edaae34c46 Mon Sep 17 00:00:00 2001
+From 0e244ee2d47f6f05e8caa3d1254f92f2537ea061 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:44 +0100
 Subject: [PATCH] Fix up xend init scripts
@@ -156,7 +156,7 @@ index 9ef0210..0876ee2 100644
 1.9.1
 
 
-From 718ad3ee41aba8a426a46485b239b4f5cdf8d9eb Mon Sep 17 00:00:00 2001
+From b9b87bcbfad213222b761b3fa83dc6eb63194213 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:44 +0100
 Subject: [PATCH] Change dumpdir to /var/lib/xen
@@ -167,7 +167,7 @@ Subject: [PATCH] Change dumpdir to /var/lib/xen
  2 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/tools/Makefile b/tools/Makefile
-index 00c69ee..125acee 100644
+index d548e5e..6610a8d 100644
 --- a/tools/Makefile
 +++ b/tools/Makefile
 @@ -60,7 +60,7 @@ all: subdirs-all
@@ -205,7 +205,7 @@ index 8d4ff5c..895fc01 100644
 1.9.1
 
 
-From 596ee6c002f92918da0c483998c7f2c3242cc5b0 Mon Sep 17 00:00:00 2001
+From 8e1ea07fe9d64c893cf08db19f96dae49c477f4c Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:44 +0100
 Subject: [PATCH] Disable iptables on the bridge
@@ -252,7 +252,7 @@ index 3c63c55..f74de3d 100644
 1.9.1
 
 
-From 753ee1d1056b18479aac93466977c3fa8c4e2a16 Mon Sep 17 00:00:00 2001
+From 5818ffa5f619720ebccf594a630930234b4d3a03 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:44 +0100
 Subject: [PATCH] pygrubfix.patch
@@ -295,7 +295,7 @@ index 45a7290..6e39ae5 100644
 1.9.1
 
 
-From 53f2efc145161f31910ae2cf11abd3639bc75b72 Mon Sep 17 00:00:00 2001
+From 33cbefb2cc2860e3cb5c467b17dda6b8b48d1235 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:44 +0100
 Subject: [PATCH] xend.catchbt.patch
@@ -343,7 +343,7 @@ index 832c168..161aeb5 100644
 1.9.1
 
 
-From 3251da2d848a1cee982f75030981894bcc44af92 Mon Sep 17 00:00:00 2001
+From 80a025112f7b89186633e9ce67164623263979cb Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:44 +0100
 Subject: [PATCH] xend-pci-loop.patch # Don't crash due to weird PCI cards (Bug
@@ -375,7 +375,7 @@ index adeca4b..94326b3 100644
 1.9.1
 
 
-From c74aba60ce42d66ae3824a9d7bf412efaee6d380 Mon Sep 17 00:00:00 2001
+From 5da9f9df7b688f8278455ac7f79ec71adb0c2d4d Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 16:30:45 +0100
 Subject: [PATCH] xend.selinux.fixes.patch
@@ -413,7 +413,7 @@ index 0876ee2..05afc0e 100644
 1.9.1
 
 
-From e3997e2ae052ad46312bfdeae72b61a6628a58bf Mon Sep 17 00:00:00 2001
+From 9191080e8bdee8be76aeae7b174807f9f24aefe0 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:36:22 +0100
 Subject: [PATCH] xen.use.fedora.ipxe.patch
@@ -425,10 +425,10 @@ Subject: [PATCH] xen.use.fedora.ipxe.patch
  3 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/Config.mk b/Config.mk
-index 33f3d9b..0b69f2f 100644
+index c44853f..42d21e6 100644
 --- a/Config.mk
 +++ b/Config.mk
-@@ -241,7 +241,7 @@ SEABIOS_UPSTREAM_TAG ?= rel-1.7.3.1
+@@ -239,7 +239,7 @@ SEABIOS_UPSTREAM_TAG ?= rel-1.7.3.1
  # Fri Aug 2 14:12:09 2013 -0400
  # Fix bug in CBFS file walking with compressed files.
  
@@ -438,7 +438,7 @@ index 33f3d9b..0b69f2f 100644
  # Specify which qemu-dm to use. This may be `ioemu' to use the old
  # Mercurial in-tree version, or a local directory, or a git URL.
 diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
-index cb13212..428045b 100644
+index 97de642..118dd75 100644
 --- a/tools/firmware/Makefile
 +++ b/tools/firmware/Makefile
 @@ -14,7 +14,7 @@ SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir
@@ -467,7 +467,7 @@ index 00ee952..b0c6f37 100644
 1.9.1
 
 
-From a4b3976d608bef3564cc52cf9d9e7db23e10e031 Mon Sep 17 00:00:00 2001
+From 9256b08381e337ddf79925267d5c04cebc65b46e Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:36:22 +0100
 Subject: [PATCH] xen.fedora.efi.build.patch
@@ -534,7 +534,7 @@ index 1daa7ac..f5398c4 100644
 1.9.1
 
 
-From dd45532cbfbbf11339c77a1edf0f7d8cf02eb88f Mon Sep 17 00:00:00 2001
+From 6b83f1160ab45ceb0de23868305eff802336f08e Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:36:22 +0100
 Subject: [PATCH] xen.fedora19.buildfix.patch
@@ -569,7 +569,7 @@ index 0fc3f82..0d43727 100644
 1.9.1
 
 
-From e2364c9c6f39484cb46413659482321b21a8b5de Mon Sep 17 00:00:00 2001
+From c032e6bdd88b7f3961cda95df4d699ae486c43fa Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:36:22 +0100
 Subject: [PATCH] xen-configure-xend.patch
@@ -620,7 +620,7 @@ index 0896a27..cea12e1 100644
 1.9.1
 
 
-From f2c93d572b9e1d0dc5026a84f1044b528c4d5f2e Mon Sep 17 00:00:00 2001
+From 843555896427c3d3fdf62a4a5b536b33847f84ef Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:50:23 +0100
 Subject: [PATCH] x86/shadow: fix race condition sampling the dirty vram state
@@ -679,7 +679,7 @@ index b1e3187..99c5e44 100644
 1.9.1
 
 
-From d13ef8eba3f4dba0a8d8f2f042f53c066a73603f Mon Sep 17 00:00:00 2001
+From b3633ccea202d54edd0801a5d714c9e58868b629 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:54:16 +0100
 Subject: [PATCH] x86/emulate: check cpl for all privileged instructions
@@ -728,7 +728,7 @@ index 50d8965..4810e68 100644
 1.9.1
 
 
-From a0ba544c3c5ad7785b21d8aefb4729c63cd9d477 Mon Sep 17 00:00:00 2001
+From 73fcc81d9f252c79f2fcb3a93fe53c155667ee80 Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:54:20 +0100
 Subject: [PATCH] x86emul: only emulate software interrupt injection for real
@@ -764,7 +764,7 @@ index 4810e68..5fbe024 100644
 1.9.1
 
 
-From 86019dc2c87f436623d1d3aff2cf8d63d47ec0d1 Mon Sep 17 00:00:00 2001
+From fdf1614760e187b9d43eb50c59218a4374d03f1c Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:54:23 +0100
 Subject: [PATCH] x86/HVM: properly bound x2APIC MSR range
@@ -812,7 +812,136 @@ index be1a2d3..3289604 100644
 1.9.1
 
 
-From 4d2e465691947530efa89189326c6a2d14286498 Mon Sep 17 00:00:00 2001
+From cf503bf76a659278509b5671fd8c59bb78896323 Mon Sep 17 00:00:00 2001
+From: Wen Congyang <wency@cn.fujitsu.com>
+Date: Thu, 11 Dec 2014 16:21:21 +0000
+Subject: [PATCH] tools: libxl: pass correct file to qemu if we use blktap2
+
+If we use blktap2, the correct file should be blktap device
+not the pdev_path.
+
+Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
+Cc: Shriram Rajagopalan <rshriram@cs.ubc.ca>
+Acked-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ tools/libxl/libxl_dm.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
+index f6f7bbd..65104d5 100644
+--- a/tools/libxl/libxl_dm.c
++++ b/tools/libxl/libxl_dm.c
+@@ -679,6 +679,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                 libxl__device_disk_dev_number(disks[i].vdev, &disk, &part);
+             const char *format = qemu_disk_format_string(disks[i].format);
+             char *drive;
++            const char *pdev_path;
+             if (dev_number == -1) {
+                 LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
+@@ -708,6 +709,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                     continue;
+                 }
++                if (disks[i].backend == LIBXL_DISK_BACKEND_TAP)
++                    pdev_path = libxl__blktap_devpath(gc, disks[i].pdev_path,
++                                                      disks[i].format);
++                else
++                    pdev_path = disks[i].pdev_path;
++
+                 /*
+                  * Explicit sd disks are passed through as is.
+                  *
+@@ -717,11 +724,11 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                 if (strncmp(disks[i].vdev, "sd", 2) == 0)
+                     drive = libxl__sprintf
+                         (gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s,cache=writeback",
+-                         disks[i].pdev_path, disk, format);
++                         pdev_path, disk, format);
+                 else if (disk < 4)
+                     drive = libxl__sprintf
+                         (gc, "file=%s,if=ide,index=%d,media=disk,format=%s,cache=writeback",
+-                         disks[i].pdev_path, disk, format);
++                         pdev_path, disk, format);
+                 else
+                     continue; /* Do not emulate this disk */
+             }
+-- 
+1.9.1
+
+
+From 026039c134e0c91d7bb2410ebcf655147e3c369c Mon Sep 17 00:00:00 2001
+From: George Dunlap <george.dunlap@eu.citrix.com>
+Date: Thu, 11 Dec 2014 16:23:09 +0000
+Subject: [PATCH] it: George Dunlap <george.dunlap@eu.citrix.com>
+
+libxl: Tell qemu to use raw format when using a tapdisk
+
+At the moment libxl unconditinally passes the underlying file format
+to qemu in the device string.  However, when tapdisk is in use,
+tapdisk handles the underlying format and presents qemu with
+effectively a raw disk.  When qemu looks at the tapdisk block device
+and doesn't find the image format it was looking for, it will fail.
+
+This effectively means that tapdisk cannot be used with HVM domains at
+the moment except for raw files.
+
+Instead, if we're using a tapdisk backend, tell qemu to use a raw file
+format.
+
+Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
+---
+CC: Ian Campbell <ian.campbell@citrix.com>
+CC: Ian Jackson <ian.jackson@citrix.com>
+CC: Wei Liu <wei.liu2@citrix.com>
+CC: Konrad Wilk <konrad.wilk@oracle.com>
+
+Release exception justification: This fixes a bug in functionality, in
+that at the moment HVM guests cannot boot with tapdisk and vhd format.
+
+This is not a regression in xl functionality per se, since (AFAICT)
+this has never worked.  However, given that 4.5 is the first release
+without xend, this *does* represent a regression in functionality for
+Xen as a whole (since before people using hvm guest with vhd on blktap
+could use xend).
+
+The fix is very simple and should only affect codepaths that already
+don't work, so the risk of regressions should be very low.
+
+While preparing this patch, I also noticed that cdroms will ignore the
+backend parameter and treat everything as a file.  This is a bug but I
+think it's a much less important one to address this late in the
+release cycle.
+---
+ tools/libxl/libxl_dm.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
+index 65104d5..aef7fb8 100644
+--- a/tools/libxl/libxl_dm.c
++++ b/tools/libxl/libxl_dm.c
+@@ -709,11 +709,14 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                     continue;
+                 }
+-                if (disks[i].backend == LIBXL_DISK_BACKEND_TAP)
++                if (disks[i].backend == LIBXL_DISK_BACKEND_TAP) {
++                    format = qemu_disk_format_string(LIBXL_DISK_FORMAT_RAW);
+                     pdev_path = libxl__blktap_devpath(gc, disks[i].pdev_path,
+                                                       disks[i].format);
+-                else
++                } else {
+                     pdev_path = disks[i].pdev_path;
++                }
++
+                 /*
+                  * Explicit sd disks are passed through as is.
+-- 
+1.9.1
+
+
+From 399a8465e8604fea91438dc093acfcb3c93b422c Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
 Date: Wed, 15 Oct 2014 15:36:23 +0100
 Subject: [PATCH] xen-centos-disable-CFLAGS-for-qemu.patch
@@ -822,7 +951,7 @@ Subject: [PATCH] xen-centos-disable-CFLAGS-for-qemu.patch
  1 file changed, 1 insertion(+)
 
 diff --git a/tools/Makefile b/tools/Makefile
-index 125acee..ce752b0 100644
+index 6610a8d..86d8a58 100644
 --- a/tools/Makefile
 +++ b/tools/Makefile
 @@ -186,6 +186,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-find
@@ -837,9 +966,9 @@ index 125acee..ce752b0 100644
 1.9.1
 
 
-From 9b1a730b48f2a9a621c2d2541c7ee1ee9121f3ca Mon Sep 17 00:00:00 2001
+From 271e989675ef858022f959034524ae1b3961d93b Mon Sep 17 00:00:00 2001
 From: George Dunlap <george.dunlap@eu.citrix.com>
-Date: Wed, 22 Oct 2014 19:24:18 +0100
+Date: Wed, 15 Oct 2014 15:36:23 +0100
 Subject: [PATCH] Adapt libxl to use blktap 2.5 v0.9.2
 
 Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
index 5bc8ce49dff60a692d3f8f758a933112aef26aeb..b858c4f944183de2a7bc6ac818898c5dfb230cac 100644 (file)
@@ -768,6 +768,7 @@ rm -rf %{buildroot}
 %changelog
 * Thu Dec 11 2014 George Dunlap <george.dunlap@eu.citrix.com> - 4.4.1-3.el6.centos
  - Backported qdisk persistent grant fix
+ - Backported fixes to use tapdisk with HVM guests
 
 * Wed Oct 22 2014 George Dunlap <george.dunlap@eu.citrix.com> - 4.4.1-2.el6.centos
  - Updated to blktap 2.5 v0.9.2