2014-05-30 00:55:47 +02:00
|
|
|
https://bugzilla.novell.com/show_bug.cgi?id=879425
|
|
|
|
---
|
|
|
|
tools/libxl/libxl.c | 2 ++
|
|
|
|
tools/libxl/libxl.h | 12 ++++++++++++
|
|
|
|
tools/libxl/libxlu_disk.c | 2 ++
|
|
|
|
tools/libxl/libxlu_disk_i.h | 2 +-
|
|
|
|
tools/libxl/libxlu_disk_l.l | 1 +
|
|
|
|
5 files changed, 18 insertions(+), 1 deletion(-)
|
|
|
|
|
2016-03-25 23:10:02 +01:00
|
|
|
Index: xen-4.7.0-testing/tools/libxl/libxl.c
|
2014-05-30 00:55:47 +02:00
|
|
|
===================================================================
|
2016-03-25 23:10:02 +01:00
|
|
|
--- xen-4.7.0-testing.orig/tools/libxl/libxl.c
|
|
|
|
+++ xen-4.7.0-testing/tools/libxl/libxl.c
|
2016-06-10 00:06:26 +02:00
|
|
|
@@ -2575,6 +2575,8 @@ static void device_disk_add(libxl__egc *
|
2015-01-14 21:58:52 +01:00
|
|
|
flexarray_append_pair(back, "discard-enable",
|
|
|
|
libxl_defbool_val(disk->discard_enable) ?
|
|
|
|
"1" : "0");
|
2014-05-30 00:55:47 +02:00
|
|
|
+ if ((disk->readwrite & ~LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MASK) == LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MAGIC)
|
|
|
|
+ flexarray_append_pair(back, "suse-diskcache-disable-flush", "1");
|
|
|
|
|
|
|
|
flexarray_append(front, "backend-id");
|
2016-03-25 23:10:02 +01:00
|
|
|
flexarray_append(front, GCSPRINTF("%d", disk->backend_domid));
|
|
|
|
Index: xen-4.7.0-testing/tools/libxl/libxl.h
|
2014-05-30 00:55:47 +02:00
|
|
|
===================================================================
|
2016-03-25 23:10:02 +01:00
|
|
|
--- xen-4.7.0-testing.orig/tools/libxl/libxl.h
|
|
|
|
+++ xen-4.7.0-testing/tools/libxl/libxl.h
|
2016-04-30 00:59:30 +02:00
|
|
|
@@ -253,6 +253,18 @@
|
|
|
|
#define LIBXL_HAVE_BUILD_ID 1
|
2014-05-30 00:55:47 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
+ * The libxl_device_disk has no way to indicate that cache=unsafe is
|
|
|
|
+ * supposed to be used. Provide this knob without breaking the ABI.
|
|
|
|
+ * This is done by overloading struct libxl_device_disk->readwrite:
|
|
|
|
+ * readwrite == 0: disk is readonly, no discard
|
|
|
|
+ * readwrite == 1: disk is readwrite, backend driver may enable discard
|
|
|
|
+ * readwrite == MAGIC: disk is readwrite, backend driver should ignore
|
|
|
|
+ * flush requests from the frontend driver.
|
|
|
|
+ */
|
|
|
|
+#define LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MAGIC 0x00006000U
|
|
|
|
+#define LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MASK 0xffff0fffU
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
* libxl ABI compatibility
|
|
|
|
*
|
|
|
|
* The only guarantee which libxl makes regarding ABI compatibility
|
2016-03-25 23:10:02 +01:00
|
|
|
Index: xen-4.7.0-testing/tools/libxl/libxlu_disk.c
|
2014-05-30 00:55:47 +02:00
|
|
|
===================================================================
|
2016-03-25 23:10:02 +01:00
|
|
|
--- xen-4.7.0-testing.orig/tools/libxl/libxlu_disk.c
|
|
|
|
+++ xen-4.7.0-testing/tools/libxl/libxlu_disk.c
|
2015-01-14 21:58:52 +01:00
|
|
|
@@ -79,6 +79,8 @@ int xlu_disk_parse(XLU_Config *cfg,
|
|
|
|
if (!disk->pdev_path || !strcmp(disk->pdev_path, ""))
|
|
|
|
disk->format = LIBXL_DISK_FORMAT_EMPTY;
|
|
|
|
}
|
2014-05-30 00:55:47 +02:00
|
|
|
+ if (disk->readwrite && dpc.suse_diskcache_disable_flush)
|
|
|
|
+ disk->readwrite = (disk->readwrite & LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MASK) | LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MAGIC;
|
|
|
|
|
|
|
|
if (!disk->vdev) {
|
|
|
|
xlu__disk_err(&dpc,0, "no vdev specified");
|
2016-03-25 23:10:02 +01:00
|
|
|
Index: xen-4.7.0-testing/tools/libxl/libxlu_disk_i.h
|
2014-05-30 00:55:47 +02:00
|
|
|
===================================================================
|
2016-03-25 23:10:02 +01:00
|
|
|
--- xen-4.7.0-testing.orig/tools/libxl/libxlu_disk_i.h
|
|
|
|
+++ xen-4.7.0-testing/tools/libxl/libxlu_disk_i.h
|
2014-05-30 00:55:47 +02:00
|
|
|
@@ -10,7 +10,7 @@ typedef struct {
|
|
|
|
void *scanner;
|
|
|
|
YY_BUFFER_STATE buf;
|
|
|
|
libxl_device_disk *disk;
|
2015-01-14 21:58:52 +01:00
|
|
|
- int access_set, had_depr_prefix;
|
|
|
|
+ int access_set, suse_diskcache_disable_flush, had_depr_prefix;
|
2014-05-30 00:55:47 +02:00
|
|
|
const char *spec;
|
|
|
|
} DiskParseContext;
|
|
|
|
|
2016-03-25 23:10:02 +01:00
|
|
|
Index: xen-4.7.0-testing/tools/libxl/libxlu_disk_l.l
|
2014-05-30 00:55:47 +02:00
|
|
|
===================================================================
|
2016-03-25 23:10:02 +01:00
|
|
|
--- xen-4.7.0-testing.orig/tools/libxl/libxlu_disk_l.l
|
|
|
|
+++ xen-4.7.0-testing/tools/libxl/libxlu_disk_l.l
|
- Add patches from proposed upstream series to load BIOS's from
the toolstack instead of embedding in hvmloader
http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01626.html
0001-libxc-Rework-extra-module-initialisation.patch,
0002-libxc-Prepare-a-start-info-structure-for-hvmloader.patch,
0003-configure-define-SEABIOS_PATH-and-OVMF_PATH.patch,
0004-firmware-makefile-install-BIOS-blob.patch,
0005-libxl-Load-guest-BIOS-from-file.patch,
0006-xen-Move-the-hvm_start_info-C-representation-from-li.patch,
0007-hvmloader-Grab-the-hvm_start_info-pointer.patch,
0008-hvmloader-Locate-the-BIOS-blob.patch,
0009-hvmloader-Check-modules-whereabouts-in-perform_tests.patch,
0010-hvmloader-Load-SeaBIOS-from-hvm_start_info-modules.patch,
0011-hvmloader-Load-OVMF-from-modules.patch,
0012-hvmloader-Specific-bios_load-function-required.patch,
0013-hvmloader-Always-build-in-SeaBIOS-and-OVMF-loader.patch,
0014-configure-do-not-depend-on-SEABIOS_PATH-or-OVMF_PATH.patch
- Enable support for UEFI on x86_64 using the ovmf-x86_64-ms.bin
firmware from qemu-ovmf-x86_64. The firmware is preloaded with
Microsoft keys to more closely resemble firmware on real hardware
FATE#320490
OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=416
2016-04-13 21:43:10 +02:00
|
|
|
@@ -195,6 +195,7 @@ colo-port=[^,]*,? { STRIP(','); setcolop
|
|
|
|
colo-export=[^,]*,? { STRIP(','); SAVESTRING("colo-export", colo_export, FROMEQUALS); }
|
|
|
|
active-disk=[^,]*,? { STRIP(','); SAVESTRING("active-disk", active_disk, FROMEQUALS); }
|
|
|
|
hidden-disk=[^,]*,? { STRIP(','); SAVESTRING("hidden-disk", hidden_disk, FROMEQUALS); }
|
2014-05-30 00:55:47 +02:00
|
|
|
+suse-diskcache-disable-flush,? { DPC->suse_diskcache_disable_flush = 1; }
|
|
|
|
|
|
|
|
/* the target magic parameter, eats the rest of the string */
|
|
|
|
|