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/57687260-xen-doc-improvements.patch b/57687260-xen-doc-improvements.patch new file mode 100644 index 0000000..2686d79 --- /dev/null +++ b/57687260-xen-doc-improvements.patch @@ -0,0 +1,55 @@ +commit 5768726093a86028b517975afc6762bf57edbf4a +Author: Jim Fehlig +Date: Mon May 4 15:52:34 2020 -0600 + + docs: Xen improvements + + In formatdomain, using 'libxl' and 'xen' is redundant since they now + both refer to the same driver. 'xen' predates 'libxl' and unambiguously + identifies the Xen hypervisor, so drop the use of 'libxl'. + + In aclpolkit, the connection URI was erroneously identified as 'libxl' + and the name 'xenlight'. Change the URI to 'xen' and driver name to 'Xen'. + + Signed-off-by: Jim Fehlig + Reviewed-by: Daniel P. Berrangé + +Index: libvirt-6.3.0/docs/aclpolkit.html.in +=================================================================== +--- libvirt-6.3.0.orig/docs/aclpolkit.html.in ++++ libvirt-6.3.0/docs/aclpolkit.html.in +@@ -342,8 +342,8 @@ + interface + + +- libxl +- xenlight ++ xen ++ Xen + + + lxc +Index: libvirt-6.3.0/docs/formatdomain.html.in +=================================================================== +--- libvirt-6.3.0.orig/docs/formatdomain.html.in ++++ libvirt-6.3.0/docs/formatdomain.html.in +@@ -2533,8 +2533,8 @@ + The name attribute selects which timer is + being modified, and can be one of + "platform" (currently unsupported), +- "hpet" (libxl, xen, qemu, lxc), "kvmclock" (qemu), +- "pit" (qemu), "rtc" (qemu, lxc), "tsc" (libxl, qemu - ++ "hpet" (xen, qemu, lxc), "kvmclock" (qemu), ++ "pit" (qemu), "rtc" (qemu, lxc), "tsc" (xen, qemu - + since 3.2.0), "hypervclock" + (qemu - since 1.2.2) or + "armvtimer" (qemu - since 6.1.0). +@@ -7518,7 +7518,7 @@ qemu-kvm -net nic,model=? /dev/null +

+ You can provide the amount of video memory in kibibytes (blocks of + 1024 bytes) using vram. This is supported only for guest +- type of "libxl", "vz", "qemu", "vbox", "vmx" and "xen". If no ++ type of "vz", "qemu", "vbox", "vmx" and "xen". If no + value is provided the default is used. If the size is not a power of + two it will be rounded to closest one. +

diff --git a/836ea91d-libxl-xenlight-internal.patch b/836ea91d-libxl-xenlight-internal.patch new file mode 100644 index 0000000..621926a --- /dev/null +++ b/836ea91d-libxl-xenlight-internal.patch @@ -0,0 +1,130 @@ +commit 836ea91d4ed174f2bb65ef894a8d6daf0675e743 +Author: Jim Fehlig +Date: Mon May 4 15:20:37 2020 -0600 + + libxl: Clarify that 'xenlight' should only be used internally + + The libxl driver has suffered an identity crisis since its introduction. + It took on the name 'libxl' since at the time libvirt already contained + a 'xen' driver for the old Xen toolstack implementation. 'libxl' is short + for libxenlight, which is often called xenlight. Unfortunately all forms + of the name are used in the libxl driver. + + The only remaining use of the 'xenlight' form is when interacting with + the host device manager, which is difficult to change since it would + cause problems when upgrading the driver. + + Rename the #define to make it clear the 'xenlight' form is internal and + add a comment describing why the name exists and that its use should be + discouraged. + + Signed-off-by: Jim Fehlig + Reviewed-by: Daniel P. Berrangé + +Index: libvirt-6.3.0/src/libxl/libxl_conf.h +=================================================================== +--- libvirt-6.3.0.orig/src/libxl/libxl_conf.h ++++ libvirt-6.3.0/src/libxl/libxl_conf.h +@@ -39,7 +39,12 @@ + #include "libxl_logger.h" + + #define LIBXL_DRIVER_EXTERNAL_NAME "Xen" +-#define LIBXL_DRIVER_NAME "xenlight" ++/* ++ * We are stuck with the 'xenlight' name since it is used by the hostdev ++ * manager. Changing it would break management of any host devices previously ++ * managed under the name 'xenlight'. ++ */ ++#define LIBXL_DRIVER_INTERNAL_NAME "xenlight" + #define LIBXL_VNC_PORT_MIN 5900 + #define LIBXL_VNC_PORT_MAX 65535 + +Index: libvirt-6.3.0/src/libxl/libxl_domain.c +=================================================================== +--- libvirt-6.3.0.orig/src/libxl/libxl_domain.c ++++ libvirt-6.3.0/src/libxl/libxl_domain.c +@@ -873,7 +873,7 @@ libxlDomainCleanup(libxlDriverPrivatePtr + VIR_FREE(xml); + } + +- virHostdevReAttachDomainDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ virHostdevReAttachDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def, hostdev_flags, NULL); + + VIR_FREE(priv->lockState); +@@ -1370,7 +1370,7 @@ libxlDomainStart(libxlDriverPrivatePtr d + if (cfg->autoballoon && libxlDomainFreeMem(cfg->ctx, &d_config) < 0) + goto cleanup_dom; + +- if (virHostdevPrepareDomainDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ if (virHostdevPrepareDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def, hostdev_flags) < 0) + goto cleanup_dom; + +Index: libvirt-6.3.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 +@@ -431,7 +431,7 @@ libxlReconnectDomain(virDomainObjPtr vm, + libxlLoggerOpenFile(cfg->logger, vm->def->id, vm->def->name, NULL); + + /* Update hostdev state */ +- if (virHostdevUpdateActiveDomainDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ if (virHostdevUpdateActiveDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def, hostdev_flags) < 0) + goto error; + +@@ -3127,7 +3127,7 @@ libxlDomainAttachHostPCIDevice(libxlDriv + if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0) + goto cleanup; + +- if (virHostdevPreparePCIDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ if (virHostdevPreparePCIDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def->name, vm->def->uuid, + &hostdev, 1, 0) < 0) + goto cleanup; +@@ -3149,7 +3149,7 @@ libxlDomainAttachHostPCIDevice(libxlDriv + goto cleanup; + + error: +- virHostdevReAttachPCIDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ virHostdevReAttachPCIDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def->name, &hostdev, 1, NULL); + + cleanup: +@@ -3264,7 +3264,7 @@ libxlDomainAttachHostUSBDevice(libxlDriv + if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0) + goto cleanup; + +- if (virHostdevPrepareUSBDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ if (virHostdevPrepareUSBDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def->name, &hostdev, 1, 0) < 0) + goto cleanup; + +@@ -3284,7 +3284,7 @@ libxlDomainAttachHostUSBDevice(libxlDriv + goto cleanup; + + reattach: +- virHostdevReAttachUSBDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ virHostdevReAttachUSBDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def->name, &hostdev, 1); + + cleanup: +@@ -3689,7 +3689,7 @@ libxlDomainDetachHostPCIDevice(libxlDriv + + virDomainHostdevRemove(vm->def, idx); + +- virHostdevReAttachPCIDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ virHostdevReAttachPCIDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def->name, &hostdev, 1, NULL); + + ret = 0; +@@ -3811,7 +3811,7 @@ libxlDomainDetachHostUSBDevice(libxlDriv + + virDomainHostdevRemove(vm->def, idx); + +- virHostdevReAttachUSBDevices(hostdev_mgr, LIBXL_DRIVER_NAME, ++ virHostdevReAttachUSBDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME, + vm->def->name, &hostdev, 1); + + ret = 0; diff --git a/88011ed2-libxl-driver-crash-fix.patch b/88011ed2-libxl-driver-crash-fix.patch deleted file mode 100644 index 407151a..0000000 --- a/88011ed2-libxl-driver-crash-fix.patch +++ /dev/null @@ -1,38 +0,0 @@ -commit 88011ed280c4f946a7b8e7ffcea2335eb075de60 -Author: Jim Fehlig -Date: Fri Apr 3 15:51:48 2020 -0600 - - libxl: fix crash when initializing driver - - Commit 54a401af478 split out DriverConfigInit from DriverConfigNew, but - then called it a bit late from libxlStateInitialize. The cfg is used in - libxlDriverConfigLoadFile and when uninitialized results in a crash. - Calling DriverConfigInit immediately after DriverConfigNew fixes the - crash. - - Signed-off-by: Jim Fehlig - Reviewed-by: Erik Skultety - Reviewed-by: Ján Tomko - -Index: libvirt-6.2.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 -@@ -702,14 +702,14 @@ libxlStateInitialize(bool privileged, - if (!(cfg = libxlDriverConfigNew())) - goto error; - -+ if (libxlDriverConfigInit(cfg) < 0) -+ goto error; -+ - driverConf = g_strdup_printf("%s/libxl.conf", cfg->configBaseDir); - - if (libxlDriverConfigLoadFile(cfg, driverConf) < 0) - goto error; - -- if (libxlDriverConfigInit(cfg) < 0) -- goto error; -- - /* Register the callbacks providing access to libvirt's event loop */ - libxl_osevent_register_hooks(cfg->ctx, &libxl_osevent_callbacks, cfg->ctx); - 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 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+