From 63e8f8f9afa939f7e43a3fc659354681b849800fba28f91ddedcae1c9259d3ab Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Wed, 6 May 2020 01:43:59 +0000 Subject: [PATCH] update to libvirt 6.3.0 final OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=825 --- ...stats-functions-from-the-qemu-driver.patch | 48 +-- ...ibxl-add-support-for-BlockResize-API.patch | 6 +- ...c-implement-connectGetAllDomainStats.patch | 10 +- 34077c1b-tests-check-e820-host.patch | 81 ----- 5749395b-libxl-e820-host.patch | 34 -- 8e669b38-conf-add-event-channels.patch | 120 ------- ...-p2p-xbzrle-compression-parallel-mig.patch | 40 --- 9529e007-libxl-passthrough.patch | 41 --- 967f4eeb-xenconfig-event-channels.patch | 210 ------------- 9cb8bc6f-xenconfig-refactor-features.patch | 112 ------- a93f55c5-libxl-add-event-channels.patch | 190 ------------ b523e225-xenconfig-passthrough.patch | 112 ------- b7d6648d-conf-add-e820-host.patch | 292 ------------------ bed32525-tests-check-passthrough.patch | 137 -------- disable-multipath-pr-tests.patch | 14 +- f3ef7daf-xenconfig-e820-host.patch | 40 --- fadbaa23-conf-add-passthrough.patch | 291 ----------------- libvirt-6.2.0.tar.xz | 3 - libvirt-6.2.0.tar.xz.asc | 11 - libvirt-6.3.0.tar.xz | 3 + libvirt-6.3.0.tar.xz.asc | 11 + libvirt-power8-models.patch | 6 +- libvirt-suse-netcontrol.patch | 34 +- libvirt.changes | 22 ++ libvirt.spec | 138 ++++----- libxl-dom-reset.patch | 6 +- libxl-set-cach-mode.patch | 6 +- libxl-set-migration-constraints.patch | 42 +-- libxl-support-block-script.patch | 6 +- lxc-wait-after-eth-del.patch | 22 +- ...e-dhcp-authoritative-on-static-netwo.patch | 14 +- ppc64le-canonical-name.patch | 6 +- qemu-apparmor-screenshot.patch | 14 +- support-managed-pci-xen-driver.patch | 6 +- suse-apparmor-libnl-paths.patch | 12 +- suse-bump-xen-version.patch | 24 +- suse-libvirt-guests-service.patch | 62 ++-- suse-libvirtd-disable-tls.patch | 12 +- suse-libvirtd-sysconfig-settings.patch | 13 +- suse-libxl-disable-autoballoon.patch | 12 +- suse-ovmf-paths.patch | 20 +- suse-qemu-conf.patch | 12 +- suse-virtlockd-sysconfig-settings.patch | 12 +- suse-virtlogd-sysconfig-settings.patch | 12 +- suse-xen-ovmf-loaders.patch | 6 +- virt-create-rootfs.patch | 22 +- 46 files changed, 319 insertions(+), 2028 deletions(-) delete mode 100644 34077c1b-tests-check-e820-host.patch delete mode 100644 5749395b-libxl-e820-host.patch delete mode 100644 8e669b38-conf-add-event-channels.patch delete mode 100644 93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch delete mode 100644 9529e007-libxl-passthrough.patch delete mode 100644 967f4eeb-xenconfig-event-channels.patch delete mode 100644 9cb8bc6f-xenconfig-refactor-features.patch delete mode 100644 a93f55c5-libxl-add-event-channels.patch delete mode 100644 b523e225-xenconfig-passthrough.patch delete mode 100644 b7d6648d-conf-add-e820-host.patch delete mode 100644 bed32525-tests-check-passthrough.patch delete mode 100644 f3ef7daf-xenconfig-e820-host.patch delete mode 100644 fadbaa23-conf-add-passthrough.patch delete mode 100644 libvirt-6.2.0.tar.xz delete mode 100644 libvirt-6.2.0.tar.xz.asc create mode 100644 libvirt-6.3.0.tar.xz create mode 100644 libvirt-6.3.0.tar.xz.asc diff --git a/0001-Extract-stats-functions-from-the-qemu-driver.patch b/0001-Extract-stats-functions-from-the-qemu-driver.patch index 2ec9662..4af8287 100644 --- a/0001-Extract-stats-functions-from-the-qemu-driver.patch +++ b/0001-Extract-stats-functions-from-the-qemu-driver.patch @@ -18,10 +18,10 @@ them. create mode 100644 src/conf/domain_stats.c create mode 100644 src/conf/domain_stats.h -Index: libvirt-6.2.0/src/conf/domain_stats.c +Index: libvirt-6.3.0/src/conf/domain_stats.c =================================================================== --- /dev/null -+++ libvirt-6.2.0/src/conf/domain_stats.c ++++ libvirt-6.3.0/src/conf/domain_stats.c @@ -0,0 +1,119 @@ +/* + * domain_stats.c: domain stats extraction helpers @@ -142,10 +142,10 @@ Index: libvirt-6.2.0/src/conf/domain_stats.c +} + +#undef STATS_ADD_NET_PARAM -Index: libvirt-6.2.0/src/conf/domain_stats.h +Index: libvirt-6.3.0/src/conf/domain_stats.h =================================================================== --- /dev/null -+++ libvirt-6.2.0/src/conf/domain_stats.h ++++ libvirt-6.3.0/src/conf/domain_stats.h @@ -0,0 +1,62 @@ +/* + * domain_stats.h: domain stats extraction helpers @@ -209,11 +209,11 @@ Index: libvirt-6.2.0/src/conf/domain_stats.h + virTypedParamListPtr params); + +#endif /* __DOMAIN_STATS_H */ -Index: libvirt-6.2.0/src/libvirt_private.syms +Index: libvirt-6.3.0/src/libvirt_private.syms =================================================================== ---- libvirt-6.2.0.orig/src/libvirt_private.syms -+++ libvirt-6.2.0/src/libvirt_private.syms -@@ -727,6 +727,9 @@ virDomainConfNWFilterInstantiate; +--- libvirt-6.3.0.orig/src/libvirt_private.syms ++++ libvirt-6.3.0/src/libvirt_private.syms +@@ -732,6 +732,9 @@ virDomainConfNWFilterInstantiate; virDomainConfNWFilterTeardown; virDomainConfVMNWFilterTeardown; @@ -223,7 +223,7 @@ Index: libvirt-6.2.0/src/libvirt_private.syms # conf/interface_conf.h virInterfaceDefFormat; -@@ -1753,6 +1756,7 @@ virCgroupGetMemoryUsage; +@@ -1763,6 +1766,7 @@ virCgroupGetMemoryUsage; virCgroupGetMemSwapHardLimit; virCgroupGetMemSwapUsage; virCgroupGetPercpuStats; @@ -231,10 +231,10 @@ Index: libvirt-6.2.0/src/libvirt_private.syms virCgroupHasController; virCgroupHasEmptyTasks; virCgroupKillPainfully; -Index: libvirt-6.2.0/src/qemu/qemu_driver.c +Index: libvirt-6.3.0/src/qemu/qemu_driver.c =================================================================== ---- libvirt-6.2.0.orig/src/qemu/qemu_driver.c -+++ libvirt-6.2.0/src/qemu/qemu_driver.c +--- libvirt-6.3.0.orig/src/qemu/qemu_driver.c ++++ libvirt-6.3.0/src/qemu/qemu_driver.c @@ -64,6 +64,7 @@ #include "virarptable.h" #include "viruuid.h" @@ -243,7 +243,7 @@ Index: libvirt-6.2.0/src/qemu/qemu_driver.c #include "domain_audit.h" #include "domain_cgroup.h" #include "domain_driver.h" -@@ -20642,13 +20643,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr +@@ -20636,13 +20637,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr virTypedParamListPtr params, unsigned int privflags G_GNUC_UNUSED) { @@ -258,7 +258,7 @@ Index: libvirt-6.2.0/src/qemu/qemu_driver.c } -@@ -20951,17 +20946,7 @@ qemuDomainGetStatsCpuCgroup(virDomainObj +@@ -20945,17 +20940,7 @@ qemuDomainGetStatsCpuCgroup(virDomainObj if (!priv->cgroup) return 0; @@ -277,7 +277,7 @@ Index: libvirt-6.2.0/src/qemu/qemu_driver.c } -@@ -21129,76 +21114,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr +@@ -21123,76 +21108,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr return ret; } @@ -355,10 +355,10 @@ Index: libvirt-6.2.0/src/qemu/qemu_driver.c /* refresh information by opening images on the disk */ static int -Index: libvirt-6.2.0/src/util/vircgroup.c +Index: libvirt-6.3.0/src/util/vircgroup.c =================================================================== ---- libvirt-6.2.0.orig/src/util/vircgroup.c -+++ libvirt-6.2.0/src/util/vircgroup.c +--- libvirt-6.3.0.orig/src/util/vircgroup.c ++++ libvirt-6.3.0/src/util/vircgroup.c @@ -2779,6 +2779,31 @@ virCgroupControllerAvailable(int control return ret; } @@ -406,10 +406,10 @@ Index: libvirt-6.2.0/src/util/vircgroup.c int virCgroupNewPartition(const char *path G_GNUC_UNUSED, bool create G_GNUC_UNUSED, -Index: libvirt-6.2.0/src/util/vircgroup.h +Index: libvirt-6.3.0/src/util/vircgroup.h =================================================================== ---- libvirt-6.2.0.orig/src/util/vircgroup.h -+++ libvirt-6.2.0/src/util/vircgroup.h +--- libvirt-6.3.0.orig/src/util/vircgroup.h ++++ libvirt-6.3.0/src/util/vircgroup.h @@ -23,6 +23,7 @@ #include "virbitmap.h" @@ -425,10 +425,10 @@ Index: libvirt-6.2.0/src/util/vircgroup.h + +int virCgroupGetStatsCpu(virCgroupPtr cgroup, + virTypedParamListPtr params); -Index: libvirt-6.2.0/src/conf/Makefile.inc.am +Index: libvirt-6.3.0/src/conf/Makefile.inc.am =================================================================== ---- libvirt-6.2.0.orig/src/conf/Makefile.inc.am -+++ libvirt-6.2.0/src/conf/Makefile.inc.am +--- libvirt-6.3.0.orig/src/conf/Makefile.inc.am ++++ libvirt-6.3.0/src/conf/Makefile.inc.am @@ -28,6 +28,8 @@ DOMAIN_CONF_SOURCES = \ conf/domain_audit.h \ conf/domain_nwfilter.c \ diff --git a/0001-libxl-add-support-for-BlockResize-API.patch b/0001-libxl-add-support-for-BlockResize-API.patch index 0402df6..fca8cb5 100644 --- a/0001-libxl-add-support-for-BlockResize-API.patch +++ b/0001-libxl-add-support-for-BlockResize-API.patch @@ -19,10 +19,10 @@ reworking this patch and submitting it to upstream libvirt. src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) -Index: libvirt-6.2.0/src/libxl/libxl_driver.c +Index: libvirt-6.3.0/src/libxl/libxl_driver.c =================================================================== ---- libvirt-6.2.0.orig/src/libxl/libxl_driver.c -+++ libvirt-6.2.0/src/libxl/libxl_driver.c +--- libvirt-6.3.0.orig/src/libxl/libxl_driver.c ++++ libvirt-6.3.0/src/libxl/libxl_driver.c @@ -5287,6 +5287,96 @@ libxlDomainMemoryStats(virDomainPtr dom, #undef LIBXL_SET_MEMSTAT diff --git a/0002-lxc-implement-connectGetAllDomainStats.patch b/0002-lxc-implement-connectGetAllDomainStats.patch index 2094bf1..fd96eb1 100644 --- a/0002-lxc-implement-connectGetAllDomainStats.patch +++ b/0002-lxc-implement-connectGetAllDomainStats.patch @@ -9,10 +9,10 @@ them using the existing API. src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) -Index: libvirt-6.2.0/src/lxc/lxc_driver.c +Index: libvirt-6.3.0/src/lxc/lxc_driver.c =================================================================== ---- libvirt-6.2.0.orig/src/lxc/lxc_driver.c -+++ libvirt-6.2.0/src/lxc/lxc_driver.c +--- libvirt-6.3.0.orig/src/lxc/lxc_driver.c ++++ libvirt-6.3.0/src/lxc/lxc_driver.c @@ -74,6 +74,7 @@ #include "netdev_bandwidth_conf.h" #include "virsocket.h" @@ -21,7 +21,7 @@ Index: libvirt-6.2.0/src/lxc/lxc_driver.c #define VIR_FROM_THIS VIR_FROM_LXC -@@ -5077,6 +5078,135 @@ lxcDomainHasManagedSaveImage(virDomainPt +@@ -5078,6 +5079,135 @@ lxcDomainHasManagedSaveImage(virDomainPt return ret; } @@ -157,7 +157,7 @@ Index: libvirt-6.2.0/src/lxc/lxc_driver.c /* Function Tables */ static virHypervisorDriver lxcHypervisorDriver = { -@@ -5174,6 +5304,7 @@ static virHypervisorDriver lxcHypervisor +@@ -5175,6 +5305,7 @@ static virHypervisorDriver lxcHypervisor .nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */ .nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */ .domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */ diff --git a/34077c1b-tests-check-e820-host.patch b/34077c1b-tests-check-e820-host.patch deleted file mode 100644 index 1792a0d..0000000 --- a/34077c1b-tests-check-e820-host.patch +++ /dev/null @@ -1,81 +0,0 @@ -commit 34077c1b8b62bb61e76b908d0959216da0b3185f -Author: Marek Marczykowski-Górecki -Date: Tue Apr 14 04:37:07 2020 +0200 - - tests: check e820_host option handling - - Signed-off-by: Marek Marczykowski-Górecki - Reviewed-by: Jim Fehlig - -Index: libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.cfg -=================================================================== ---- /dev/null -+++ libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.cfg -@@ -0,0 +1,13 @@ -+name = "XenGuest1" -+uuid = "45b60f51-88a9-47a8-a3b3-5e66d71b2283" -+maxmem = 512 -+memory = 512 -+vcpus = 4 -+e820_host = 1 -+localtime = 0 -+on_poweroff = "preserve" -+on_reboot = "restart" -+on_crash = "preserve" -+vif = [ "mac=5a:36:0e:be:00:09" ] -+bootloader = "/usr/bin/pygrub" -+disk = [ "format=qcow2,vdev=xvda,access=rw,backendtype=qdisk,target=/var/lib/xen/images/debian/disk.qcow2" ] -Index: libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.xml -=================================================================== ---- /dev/null -+++ libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.xml -@@ -0,0 +1,37 @@ -+ -+ XenGuest1 -+ 45b60f51-88a9-47a8-a3b3-5e66d71b2283 -+ 524288 -+ 524288 -+ 4 -+ /usr/bin/pygrub -+ -+ linux -+ -+ -+ -+ -+ -+ -+ -+ preserve -+ restart -+ preserve -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -Index: libvirt-6.2.0/tests/xlconfigtest.c -=================================================================== ---- libvirt-6.2.0.orig/tests/xlconfigtest.c -+++ libvirt-6.2.0/tests/xlconfigtest.c -@@ -300,6 +300,7 @@ mymain(void) - DO_TEST("vif-multi-ip"); - DO_TEST("usb"); - DO_TEST("usbctrl"); -+ DO_TEST("paravirt-e820_host"); - - testXLFreeDriver(driver); - diff --git a/5749395b-libxl-e820-host.patch b/5749395b-libxl-e820-host.patch deleted file mode 100644 index 17e7b6f..0000000 --- a/5749395b-libxl-e820-host.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 5749395bfd03fcdb55a8be6a69637a2acaaad2c9 -Author: Marek Marczykowski-Górecki -Date: Tue Apr 14 04:37:05 2020 +0200 - - libxl: make use of e820_host feature - - Signed-off-by: Marek Marczykowski-Górecki - Reviewed-by: Jim Fehlig - -Index: libvirt-6.2.0/src/libxl/libxl_conf.c -=================================================================== ---- libvirt-6.2.0.orig/src/libxl/libxl_conf.c -+++ libvirt-6.2.0/src/libxl/libxl_conf.c -@@ -692,6 +692,20 @@ libxlMakeDomBuildInfo(virDomainDefPtr de - b_info->u.pv.kernel = g_strdup(def->os.kernel); - } - b_info->u.pv.ramdisk = g_strdup(def->os.initrd); -+ -+ if (def->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) { -+ switch ((virTristateSwitch) def->xen_features[VIR_DOMAIN_XEN_E820_HOST]) { -+ case VIR_TRISTATE_SWITCH_ON: -+ libxl_defbool_set(&b_info->u.pv.e820_host, true); -+ break; -+ case VIR_TRISTATE_SWITCH_OFF: -+ libxl_defbool_set(&b_info->u.pv.e820_host, false); -+ break; -+ case VIR_TRISTATE_SWITCH_ABSENT: -+ case VIR_TRISTATE_SWITCH_LAST: -+ break; -+ } -+ } - } - - /* only the 'xen' balloon device model is supported */ diff --git a/8e669b38-conf-add-event-channels.patch b/8e669b38-conf-add-event-channels.patch deleted file mode 100644 index 5d6e5e1..0000000 --- a/8e669b38-conf-add-event-channels.patch +++ /dev/null @@ -1,120 +0,0 @@ -commit 8e669b382c3533793356261c6d748df56162a2c6 -Author: Jim Fehlig -Date: Tue Apr 7 16:37:09 2020 -0600 - - conf: Add a new xenbus controller option for event channels - - Event channels are like PV interrupts and in conjuction with grant frames - form a data transfer mechanism for PV drivers. They are also used for - inter-processor interrupts. Guests with a large number of vcpus and/or - many PV devices many need to increase the maximum default value of 1023. - For this reason the native Xen config format supports the - 'max_event_channels' setting. See xl.cfg(5) man page for more details. - - Similar to the existing maxGrantFrames option, add a new xenbus controller - option 'maxEventChannels', allowing to adjust the maximum value via libvirt. - - Signed-off-by: Jim Fehlig - Reviewed-by: Daniel P. Berrangé - -Index: libvirt-6.2.0/docs/formatdomain.html.in -=================================================================== ---- libvirt-6.2.0.orig/docs/formatdomain.html.in -+++ libvirt-6.2.0/docs/formatdomain.html.in -@@ -4416,7 +4416,7 @@ - <driver iothread='4'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> - </controller> -- <controller type='xenbus' maxGrantFrames='64'/> -+ <controller type='xenbus' maxGrantFrames='64' maxEventChannels='2047'/> - ... - </devices> - ... -@@ -4476,7 +4476,11 @@ -
Since 5.2.0, the xenbus - controller has an optional attribute maxGrantFrames, - which specifies the maximum number of grant frames the controller -- makes available for connected devices.
-+ makes available for connected devices. -+ Since 6.3.0, the xenbus controller -+ supports the optional maxEventChannels attribute, -+ which specifies maximum number of event channels (PV interrupts) -+ that can be used by the guest. - - -

-Index: libvirt-6.2.0/docs/schemas/domaincommon.rng -=================================================================== ---- libvirt-6.2.0.orig/docs/schemas/domaincommon.rng -+++ libvirt-6.2.0/docs/schemas/domaincommon.rng -@@ -2548,6 +2548,11 @@ - - - -+ -+ -+ -+ -+ - - - -Index: libvirt-6.2.0/src/conf/domain_conf.c -=================================================================== ---- libvirt-6.2.0.orig/src/conf/domain_conf.c -+++ libvirt-6.2.0/src/conf/domain_conf.c -@@ -2245,6 +2245,7 @@ virDomainControllerDefNew(virDomainContr - break; - case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: - def->opts.xenbusopts.maxGrantFrames = -1; -+ def->opts.xenbusopts.maxEventChannels = -1; - break; - case VIR_DOMAIN_CONTROLLER_TYPE_IDE: - case VIR_DOMAIN_CONTROLLER_TYPE_FDC: -@@ -11337,6 +11338,7 @@ virDomainControllerDefParseXML(virDomain - break; - case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: { - g_autofree char *gntframes = virXMLPropString(node, "maxGrantFrames"); -+ g_autofree char *eventchannels = virXMLPropString(node, "maxEventChannels"); - - if (gntframes) { - int r = virStrToLong_i(gntframes, NULL, 10, -@@ -11347,6 +11349,15 @@ virDomainControllerDefParseXML(virDomain - goto error; - } - } -+ if (eventchannels) { -+ int r = virStrToLong_i(eventchannels, NULL, 10, -+ &def->opts.xenbusopts.maxEventChannels); -+ if (r != 0 || def->opts.xenbusopts.maxEventChannels < 0) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("Invalid maxEventChannels: %s"), eventchannels); -+ goto error; -+ } -+ } - break; - } - -@@ -25267,6 +25278,10 @@ virDomainControllerDefFormat(virBufferPt - virBufferAsprintf(&attrBuf, " maxGrantFrames='%d'", - def->opts.xenbusopts.maxGrantFrames); - } -+ if (def->opts.xenbusopts.maxEventChannels != -1) { -+ virBufferAsprintf(&attrBuf, " maxEventChannels='%d'", -+ def->opts.xenbusopts.maxEventChannels); -+ } - break; - - default: -Index: libvirt-6.2.0/src/conf/domain_conf.h -=================================================================== ---- libvirt-6.2.0.orig/src/conf/domain_conf.h -+++ libvirt-6.2.0/src/conf/domain_conf.h -@@ -730,6 +730,7 @@ struct _virDomainUSBControllerOpts { - - struct _virDomainXenbusControllerOpts { - int maxGrantFrames; /* -1 == undef */ -+ int maxEventChannels; /* -1 == undef */ - }; - - /* Stores the virtual disk controller configuration */ diff --git a/93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch b/93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch deleted file mode 100644 index fa9523a..0000000 --- a/93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch +++ /dev/null @@ -1,40 +0,0 @@ -commit 93b15ba0f2eb7858f8d88a5fd7354bd48bb7fc8d -Author: Lin Ma -Date: Thu Apr 16 12:44:51 2020 +0800 - - qemu: fix hang in p2p + xbzrle compression + parallel migration - - When we do parallel migration, The multifd-channels migration parameter - needs to be set on the destination side as well before incoming migration - URI, unless we accept the default number of connections(2). - - Usually, This can be correctly handled by libvirtd. But in this case if - we use p2p + xbzrle compression without parameter '--comp-xbzrle-cache', - qemuMigrationParamsDump returns too early, The corresponding migration - parameter will not be set on the destination side, It results QEMU hangs. - - Reproducer: - virsh migrate --live --p2p --comp-methods xbzrle \ - --parallel --parallel-connections 3 GUEST qemu+ssh://dsthost/system - - or - - virsh migrate --live --p2p --compressed \ - --parallel --parallel-connections 3 GUEST qemu+ssh://dsthost/system - - Signed-off-by: Lin Ma - Message-Id: <20200416044451.21134-1-lma@suse.com> - Reviewed-by: Jiri Denemark - -Index: libvirt-6.0.0/src/qemu/qemu_migration_params.c -=================================================================== ---- libvirt-6.0.0.orig/src/qemu/qemu_migration_params.c -+++ libvirt-6.0.0/src/qemu/qemu_migration_params.c -@@ -630,7 +630,6 @@ qemuMigrationParamsDump(qemuMigrationPar - if (migParams->compMethods == 1ULL << QEMU_MIGRATION_COMPRESS_XBZRLE && - !migParams->params[QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE].set) { - *flags |= VIR_MIGRATE_COMPRESSED; -- return 0; - } - - for (i = 0; i < QEMU_MIGRATION_COMPRESS_LAST; ++i) { diff --git a/9529e007-libxl-passthrough.patch b/9529e007-libxl-passthrough.patch deleted file mode 100644 index 5fb9a2c..0000000 --- a/9529e007-libxl-passthrough.patch +++ /dev/null @@ -1,41 +0,0 @@ -commit 9529e0077a3f9002d6bc7f5504ca4583e5d985f1 -Author: Jim Fehlig -Date: Wed Apr 15 17:18:25 2020 -0600 - - libxl: make use of passthrough hypervisor feature - - Signed-off-by: Jim Fehlig - Reviewed-by: Michal Privoznik - -Index: libvirt-6.2.0/src/libxl/libxl_conf.c -=================================================================== ---- libvirt-6.2.0.orig/src/libxl/libxl_conf.c -+++ libvirt-6.2.0/src/libxl/libxl_conf.c -@@ -158,6 +158,27 @@ libxlMakeDomCreateInfo(libxl_ctx *ctx, - c_info->type = LIBXL_DOMAIN_TYPE_PV; - } - -+#ifdef LIBXL_HAVE_CREATEINFO_PASSTHROUGH -+ if (def->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) { -+ switch ((virTristateSwitch) def->xen_features[VIR_DOMAIN_XEN_PASSTHROUGH]) { -+ case VIR_TRISTATE_SWITCH_ON: -+ if (def->xen_passthrough_mode == VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SYNC_PT) -+ c_info->passthrough = LIBXL_PASSTHROUGH_SYNC_PT; -+ else if (def->xen_passthrough_mode == VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SHARE_PT) -+ c_info->passthrough = LIBXL_PASSTHROUGH_SHARE_PT; -+ else -+ c_info->passthrough = LIBXL_PASSTHROUGH_ENABLED; -+ break; -+ case VIR_TRISTATE_SWITCH_OFF: -+ c_info->passthrough = LIBXL_PASSTHROUGH_DISABLED; -+ break; -+ case VIR_TRISTATE_SWITCH_ABSENT: -+ case VIR_TRISTATE_SWITCH_LAST: -+ break; -+ } -+ } -+#endif -+ - c_info->name = g_strdup(def->name); - - if (def->nseclabels && diff --git a/967f4eeb-xenconfig-event-channels.patch b/967f4eeb-xenconfig-event-channels.patch deleted file mode 100644 index 03e588d..0000000 --- a/967f4eeb-xenconfig-event-channels.patch +++ /dev/null @@ -1,210 +0,0 @@ -commit 967f4eebdcfed014fb8ad4569e9a04cdc731e9a6 -Author: Jim Fehlig -Date: Tue Apr 7 17:33:26 2020 -0600 - - xenconfig: Add support for max_event_channels - - Add support in the domXML<->native config converter for max_event_channels. - The parser and formater functions for max_grant_frames were reworked to - also parse max_event_channels. In doing so the xenbus controller is added - earlier in the config parsing, requiring a small adjustment to one of the - existing tests. Include a new test for the event channel conversion. - - Signed-off-by: Jim Fehlig - Reviewed-by: Daniel P. Berrangé - -Index: libvirt-6.2.0/src/libxl/xen_xl.c -=================================================================== ---- libvirt-6.2.0.orig/src/libxl/xen_xl.c -+++ libvirt-6.2.0/src/libxl/xen_xl.c -@@ -597,19 +597,12 @@ xenParseXLVnuma(virConfPtr conf, - } - #endif - --#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS - static int --xenParseXLGntLimits(virConfPtr conf, virDomainDefPtr def) -+xenParseXLXenbusLimits(virConfPtr conf, virDomainDefPtr def) - { -- unsigned long max_gntframes; - int ctlr_idx; - virDomainControllerDefPtr xenbus_ctlr; -- -- if (xenConfigGetULong(conf, "max_grant_frames", &max_gntframes, 0) < 0) -- return -1; -- -- if (max_gntframes <= 0) -- return 0; -+ unsigned long limit; - - ctlr_idx = virDomainControllerFindByType(def, VIR_DOMAIN_CONTROLLER_TYPE_XENBUS); - if (ctlr_idx == -1) -@@ -620,10 +613,20 @@ xenParseXLGntLimits(virConfPtr conf, vir - if (xenbus_ctlr == NULL) - return -1; - -- xenbus_ctlr->opts.xenbusopts.maxGrantFrames = max_gntframes; -+ if (xenConfigGetULong(conf, "max_event_channels", &limit, 0) < 0) -+ return -1; -+ if (limit > 0) -+ xenbus_ctlr->opts.xenbusopts.maxEventChannels = limit; -+ -+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS -+ if (xenConfigGetULong(conf, "max_grant_frames", &limit, 0) < 0) -+ return -1; -+ if (limit > 0) -+ xenbus_ctlr->opts.xenbusopts.maxGrantFrames = limit; -+#endif -+ - return 0; - } --#endif - - static int - xenParseXLDiskSrc(virDomainDiskDefPtr disk, char *srcstr) -@@ -1180,10 +1183,8 @@ xenParseXL(virConfPtr conf, - goto cleanup; - #endif - --#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS -- if (xenParseXLGntLimits(conf, def) < 0) -+ if (xenParseXLXenbusLimits(conf, def) < 0) - goto cleanup; --#endif - - if (xenParseXLCPUID(conf, def) < 0) - goto cleanup; -@@ -1532,23 +1533,31 @@ xenFormatXLDomainVnuma(virConfPtr conf, - } - #endif - --#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS - static int --xenFormatXLGntLimits(virConfPtr conf, virDomainDefPtr def) -+xenFormatXLXenbusLimits(virConfPtr conf, virDomainDefPtr def) - { - size_t i; - - for (i = 0; i < def->ncontrollers; i++) { -- if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS && -- def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0) { -- if (xenConfigSetInt(conf, "max_grant_frames", -- def->controllers[i]->opts.xenbusopts.maxGrantFrames) < 0) -- return -1; -+ if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS) { -+ if (def->controllers[i]->opts.xenbusopts.maxEventChannels > 0) { -+ if (xenConfigSetInt(conf, "max_event_channels", -+ def->controllers[i]->opts.xenbusopts.maxEventChannels) < 0) -+ return -1; -+ } -+ -+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS -+ if (def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0) { -+ if (xenConfigSetInt(conf, "max_grant_frames", -+ def->controllers[i]->opts.xenbusopts.maxGrantFrames) < 0) -+ return -1; -+ } -+#endif - } - } -+ - return 0; - } --#endif - - static char * - xenFormatXLDiskSrcNet(virStorageSourcePtr src) -@@ -2191,10 +2200,8 @@ xenFormatXL(virDomainDefPtr def, virConn - return NULL; - #endif - --#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS -- if (xenFormatXLGntLimits(conf, def) < 0) -+ if (xenFormatXLXenbusLimits(conf, def) < 0) - return NULL; --#endif - - if (xenFormatXLDomainDisks(conf, def) < 0) - return NULL; -Index: libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.cfg -=================================================================== ---- /dev/null -+++ libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.cfg -@@ -0,0 +1,13 @@ -+name = "XenGuest1" -+uuid = "45b60f51-88a9-47a8-a3b3-5e66d71b2283" -+maxmem = 512 -+memory = 512 -+vcpus = 1 -+localtime = 0 -+on_poweroff = "preserve" -+on_reboot = "restart" -+on_crash = "preserve" -+vif = [ "mac=5a:36:0e:be:00:09" ] -+bootloader = "/usr/bin/pygrub" -+max_event_channels = 2047 -+disk = [ "format=qcow2,vdev=xvda,access=rw,backendtype=qdisk,target=/var/lib/xen/images/debian/disk.qcow2" ] -Index: libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.xml -=================================================================== ---- /dev/null -+++ libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.xml -@@ -0,0 +1,32 @@ -+ -+ XenGuest1 -+ 45b60f51-88a9-47a8-a3b3-5e66d71b2283 -+ 524288 -+ 524288 -+ 1 -+ /usr/bin/pygrub -+ -+ linux -+ -+ -+ preserve -+ restart -+ preserve -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -Index: libvirt-6.2.0/tests/xlconfigdata/test-usbctrl.xml -=================================================================== ---- libvirt-6.2.0.orig/tests/xlconfigdata/test-usbctrl.xml -+++ libvirt-6.2.0/tests/xlconfigdata/test-usbctrl.xml -@@ -18,8 +18,8 @@ - - - -- - -+ - - - -Index: libvirt-6.2.0/tests/xlconfigtest.c -=================================================================== ---- libvirt-6.2.0.orig/tests/xlconfigtest.c -+++ libvirt-6.2.0/tests/xlconfigtest.c -@@ -294,6 +294,8 @@ mymain(void) - DO_TEST("max-gntframes"); - #endif - -+ DO_TEST("max-eventchannels"); -+ - DO_TEST("vif-typename"); - DO_TEST("vif-multi-ip"); - DO_TEST("usb"); diff --git a/9cb8bc6f-xenconfig-refactor-features.patch b/9cb8bc6f-xenconfig-refactor-features.patch deleted file mode 100644 index 7947ebc..0000000 --- a/9cb8bc6f-xenconfig-refactor-features.patch +++ /dev/null @@ -1,112 +0,0 @@ -commit 9cb8bc6ff1ad80aba4d3c68756166a22e830d481 -Author: Jim Fehlig -Date: Wed Apr 15 21:48:42 2020 -0600 - - libxl: refactor cpu and hypervisor feature parser/formatter - - Signed-off-by: Jim Fehlig - Reviewed-by: Michal Privoznik - -Index: libvirt-6.2.0/src/libxl/xen_common.c -=================================================================== ---- libvirt-6.2.0.orig/src/libxl/xen_common.c -+++ libvirt-6.2.0/src/libxl/xen_common.c -@@ -493,15 +493,12 @@ xenParsePCIList(virConfPtr conf, virDoma - - - static int --xenParseCPUFeatures(virConfPtr conf, -- virDomainDefPtr def, -- virDomainXMLOptionPtr xmlopt) -+xenParseCPU(virConfPtr conf, -+ virDomainDefPtr def, -+ virDomainXMLOptionPtr xmlopt) - { - unsigned long count = 0; - g_autofree char *cpus = NULL; -- g_autofree char *tsc_mode = NULL; -- int val = 0; -- virDomainTimerDefPtr timer; - - if (xenConfigGetULong(conf, "vcpus", &count, 1) < 0) - return -1; -@@ -526,6 +523,17 @@ xenParseCPUFeatures(virConfPtr conf, - if (cpus && (virBitmapParse(cpus, &def->cpumask, 4096) < 0)) - return -1; - -+ return 0; -+} -+ -+ -+static int -+xenParseHypervisorFeatures(virConfPtr conf, virDomainDefPtr def) -+{ -+ g_autofree char *tsc_mode = NULL; -+ virDomainTimerDefPtr timer; -+ int val = 0; -+ - if (xenConfigGetString(conf, "tsc_mode", &tsc_mode, NULL) < 0) - return -1; - -@@ -552,27 +560,26 @@ xenParseCPUFeatures(virConfPtr conf, - if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) { - if (xenConfigGetBool(conf, "pae", &val, 1) < 0) - return -1; -- - else if (val) - def->features[VIR_DOMAIN_FEATURE_PAE] = VIR_TRISTATE_SWITCH_ON; -+ - if (xenConfigGetBool(conf, "acpi", &val, 1) < 0) - return -1; -- - else if (val) - def->features[VIR_DOMAIN_FEATURE_ACPI] = VIR_TRISTATE_SWITCH_ON; -+ - if (xenConfigGetBool(conf, "apic", &val, 1) < 0) - return -1; -- - else if (val) - def->features[VIR_DOMAIN_FEATURE_APIC] = VIR_TRISTATE_SWITCH_ON; -+ - if (xenConfigGetBool(conf, "hap", &val, 1) < 0) - return -1; -- - else if (!val) - def->features[VIR_DOMAIN_FEATURE_HAP] = VIR_TRISTATE_SWITCH_OFF; -+ - if (xenConfigGetBool(conf, "viridian", &val, 0) < 0) - return -1; -- - else if (val) - def->features[VIR_DOMAIN_FEATURE_VIRIDIAN] = VIR_TRISTATE_SWITCH_ON; - -@@ -1483,7 +1490,10 @@ xenParseConfigCommon(virConfPtr conf, - if (xenParseEventsActions(conf, def) < 0) - return -1; - -- if (xenParseCPUFeatures(conf, def, xmlopt) < 0) -+ if (xenParseCPU(conf, def, xmlopt) < 0) -+ return -1; -+ -+ if (xenParseHypervisorFeatures(conf, def) < 0) - return -1; - - if (xenParseTimeOffset(conf, def) < 0) -@@ -2115,7 +2125,7 @@ xenFormatCPUAllocation(virConfPtr conf, - - - static int --xenFormatCPUFeatures(virConfPtr conf, virDomainDefPtr def) -+xenFormatHypervisorFeatures(virConfPtr conf, virDomainDefPtr def) - { - size_t i; - bool hvm = !!(def->os.type == VIR_DOMAIN_OSTYPE_HVM); -@@ -2423,7 +2433,7 @@ xenFormatConfigCommon(virConfPtr conf, - if (xenFormatCPUAllocation(conf, def) < 0) - return -1; - -- if (xenFormatCPUFeatures(conf, def) < 0) -+ if (xenFormatHypervisorFeatures(conf, def) < 0) - return -1; - - if (xenFormatTimeOffset(conf, def) < 0) diff --git a/a93f55c5-libxl-add-event-channels.patch b/a93f55c5-libxl-add-event-channels.patch deleted file mode 100644 index ecbfb45..0000000 --- a/a93f55c5-libxl-add-event-channels.patch +++ /dev/null @@ -1,190 +0,0 @@ -commit a93f55c53d83ec63fe703db38cb519465b1d2445 -Author: Jim Fehlig -Date: Tue Apr 7 17:15:04 2020 -0600 - - libxl: Add support for max_event_channels - - Add support for setting event_channels in libxl domain config object and - include a test to check that it is properly converted from XML to libxl - domain config. - - Signed-off-by: Jim Fehlig - Reviewed-by: Daniel P. Berrangé - -Index: libvirt-6.2.0/src/libxl/libxl_conf.c -=================================================================== ---- libvirt-6.2.0.orig/src/libxl/libxl_conf.c -+++ libvirt-6.2.0/src/libxl/libxl_conf.c -@@ -380,13 +380,17 @@ libxlMakeDomBuildInfo(virDomainDefPtr de - b_info->max_memkb = virDomainDefGetMemoryInitial(def); - b_info->target_memkb = def->mem.cur_balloon; - --#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS - for (i = 0; i < def->ncontrollers; i++) { -- if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS && -- def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0) -- b_info->max_grant_frames = def->controllers[i]->opts.xenbusopts.maxGrantFrames; -- } -+ if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS) { -+ if (def->controllers[i]->opts.xenbusopts.maxEventChannels > 0) -+ b_info->event_channels = def->controllers[i]->opts.xenbusopts.maxEventChannels; -+ -+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS -+ if (def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0) -+ b_info->max_grant_frames = def->controllers[i]->opts.xenbusopts.maxGrantFrames; - #endif -+ } -+ } - - if (hvm || pvh) { - if (caps && -Index: libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.json -=================================================================== ---- /dev/null -+++ libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.json -@@ -0,0 +1,90 @@ -+{ -+ "c_info": { -+ "type": "hvm", -+ "name": "test-hvm", -+ "uuid": "2147d599-9cc6-c0dc-92ab-4064b5446e9b" -+ }, -+ "b_info": { -+ "max_vcpus": 4, -+ "avail_vcpus": [ -+ 0, -+ 1, -+ 2, -+ 3 -+ ], -+ "max_memkb": 1048576, -+ "target_memkb": 1048576, -+ "video_memkb": 8192, -+ "shadow_memkb": 12288, -+ "event_channels": 2047, -+ "device_model_version": "qemu_xen", -+ "device_model": "/bin/true", -+ "sched_params": { -+ -+ }, -+ "type.hvm": { -+ "pae": "True", -+ "apic": "True", -+ "acpi": "True", -+ "vga": { -+ "kind": "cirrus" -+ }, -+ "vnc": { -+ "enable": "True", -+ "listen": "0.0.0.0", -+ "findunused": "False" -+ }, -+ "sdl": { -+ "enable": "False" -+ }, -+ "spice": { -+ -+ }, -+ "boot": "c", -+ "rdm": { -+ -+ } -+ }, -+ "arch_arm": { -+ -+ } -+ }, -+ "disks": [ -+ { -+ "pdev_path": "/var/lib/xen/images/test-hvm.img", -+ "vdev": "hda", -+ "backend": "qdisk", -+ "format": "raw", -+ "removable": 1, -+ "readwrite": 1 -+ } -+ ], -+ "nics": [ -+ { -+ "devid": 0, -+ "mac": "00:16:3e:66:12:b4", -+ "bridge": "br0", -+ "script": "/etc/xen/scripts/vif-bridge", -+ "nictype": "vif_ioemu" -+ } -+ ], -+ "vfbs": [ -+ { -+ "devid": -1, -+ "vnc": { -+ "enable": "True", -+ "listen": "0.0.0.0", -+ "findunused": "False" -+ }, -+ "sdl": { -+ "enable": "False" -+ } -+ } -+ ], -+ "vkbs": [ -+ { -+ "devid": -1 -+ } -+ ], -+ "on_reboot": "restart" -+} -Index: libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.xml -=================================================================== ---- /dev/null -+++ libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.xml -@@ -0,0 +1,37 @@ -+ -+ test-hvm -+ None -+ 2147d599-9cc6-c0dc-92ab-4064b5446e9b -+ 1048576 -+ 1048576 -+ 4 -+ destroy -+ restart -+ destroy -+ -+ -+ hvm -+ /usr/lib/xen/boot/hvmloader -+ -+ -+ -+ -+ -+ -+ -+ -+ /bin/true -+ -+ -+ -+ -+ -+ -+ -+ -+ -+