Accepting request 919014 from Virtualization

OBS-URL: https://build.opensuse.org/request/show/919014
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=339
This commit is contained in:
Dominique Leuenberger 2021-09-20 21:31:57 +00:00 committed by Git OBS Bridge
commit 867ebdcbe2
8 changed files with 116 additions and 7 deletions

View File

@ -23,7 +23,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
=================================================================== ===================================================================
--- libvirt-7.7.0.orig/src/libxl/libxl_driver.c --- libvirt-7.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.7.0/src/libxl/libxl_driver.c +++ libvirt-7.7.0/src/libxl/libxl_driver.c
@@ -5269,6 +5269,95 @@ libxlDomainMemoryStats(virDomainPtr dom, @@ -5265,6 +5265,95 @@ libxlDomainMemoryStats(virDomainPtr dom,
#undef LIBXL_SET_MEMSTAT #undef LIBXL_SET_MEMSTAT
@ -119,7 +119,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
static int static int
libxlDomainGetJobInfo(virDomainPtr dom, libxlDomainGetJobInfo(virDomainPtr dom,
virDomainJobInfoPtr info) virDomainJobInfoPtr info)
@@ -6567,6 +6656,7 @@ static virHypervisorDriver libxlHypervis @@ -6563,6 +6652,7 @@ static virHypervisorDriver libxlHypervis
.domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */ .domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */ .nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */ .nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */

View File

@ -0,0 +1,28 @@
commit 51eb680b2647a8c0520ec5da3bb32d711d59f81b
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Sep 14 11:11:11 2021 -0600
libxl: Don't autostart domains on driver reload
When libxlAutostartDomain was introduced with commit fb92307f0d, one hunk
mistakenly added a call site in libxlStateReload. Domains should not be
autostarted when reloading the driver, so remove the offending hunk.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-7.7.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-7.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.7.0/src/libxl/libxl_driver.c
@@ -825,10 +825,6 @@ libxlStateReload(void)
libxl_driver->xmlopt,
NULL, libxl_driver);
- virDomainObjListForEach(libxl_driver->domains, false,
- libxlAutostartDomain,
- libxl_driver);
-
virObjectUnref(cfg);
return 0;
}

View File

@ -0,0 +1,32 @@
commit 65fab900c5206700f728de5dec72886832b5328f
Author: Jim Fehlig <jfehlig@suse.com>
Date: Mon Sep 13 16:04:41 2021 -0600
libxl: Fix driver reload
On reload, the libxl driver calls virDomainObjListLoadAllConfigs to load
all configs from /etc/libvirt/libxl/ but incorrectly passes 'true' for
the liveStatus parameter, resulting in error messages such as
libvirtd[21053]: XML error: unexpected root element <domain>, expecting <domstatus>
libvirtd[21053]: Failed to load config for domain 'sles15sp3'
Fix by not requesting live status when re-reading the persistent VM config
files.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-7.7.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-7.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.7.0/src/libxl/libxl_driver.c
@@ -821,7 +821,7 @@ libxlStateReload(void)
virDomainObjListLoadAllConfigs(libxl_driver->domains,
cfg->configDir,
cfg->autostartDir,
- true,
+ false,
libxl_driver->xmlopt,
NULL, libxl_driver);

View File

@ -0,0 +1,35 @@
commit b75a16ae5e8d9bc9d1b917e20a6d85db3cbc7b82
Author: Jim Fehlig <jfehlig@suse.com>
Date: Fri Sep 10 14:34:09 2021 -0600
libxl: Improve reporting of die_id in capabilities
On Xen, libvirt runs in a VM (typically dom0) and does not have an accurate
picture of numa and cpu topology of the underlying physical machine using
the "usual" mechanisms. numa info and cpu toplogy are retrieved from libxl
and used to populate the libvirt conterparts. Commit 7b79ee2f78b introduced
support for reporting die_id in capabilities, but did not account for
special handling of numa and cpu topology in libxl.
Currently, Xen does not report die_id in the libxl_cputopology structure.
In the meantime, set die_id to 0, which was suggested by the Xen developers
and is slightly better than random garbage such as
<cpu id='1' socket_id='0' die_id='-1073069552' core_id='0' siblings='0-1'/>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-7.7.0/src/libxl/libxl_capabilities.c
===================================================================
--- libvirt-7.7.0.orig/src/libxl/libxl_capabilities.c
+++ libvirt-7.7.0/src/libxl/libxl_capabilities.c
@@ -292,6 +292,8 @@ libxlCapsInitNuma(libxl_ctx *ctx, virCap
cpus[node][nr_cpus_node[node]-1].id = i;
cpus[node][nr_cpus_node[node]-1].socket_id = cpu_topo[i].socket;
cpus[node][nr_cpus_node[node]-1].core_id = cpu_topo[i].core;
+ /* Until Xen reports die_id, 0 is better than random garbage */
+ cpus[node][nr_cpus_node[node]-1].die_id = 0;
/* Allocate the siblings maps. We will be filling them later */
cpus[node][nr_cpus_node[node]-1].siblings = virBitmapNew(nr_cpus);
}

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Tue Sep 14 20:16:34 UTC 2021 - James Fehlig <jfehlig@suse.com>
- libxl: Improve reporting of die_id in capabilities
b75a16ae-libxl-improve-die-id.patch
boo#1190493
- libxl: Fix driver reload
65fab900-libxl-fix-driver-reload.patch,
51eb680b-libxl-dont-autostart-on-reload.patch
bsc#1190420
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Sep 1 14:21:30 UTC 2021 - James Fehlig <jfehlig@suse.com> Wed Sep 1 14:21:30 UTC 2021 - James Fehlig <jfehlig@suse.com>

View File

@ -285,6 +285,9 @@ Source6: libvirtd-relocation-server.xml
Source99: baselibs.conf Source99: baselibs.conf
Source100: %{name}-rpmlintrc Source100: %{name}-rpmlintrc
# Upstream patches # Upstream patches
Patch0: b75a16ae-libxl-improve-die-id.patch
Patch1: 65fab900-libxl-fix-driver-reload.patch
Patch2: 51eb680b-libxl-dont-autostart-on-reload.patch
# Patches pending upstream review # Patches pending upstream review
Patch100: libxl-dom-reset.patch Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch

View File

@ -12,7 +12,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
=================================================================== ===================================================================
--- libvirt-7.7.0.orig/src/libxl/libxl_driver.c --- libvirt-7.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.7.0/src/libxl/libxl_driver.c +++ libvirt-7.7.0/src/libxl/libxl_driver.c
@@ -1347,6 +1347,63 @@ libxlDomainReboot(virDomainPtr dom, unsi @@ -1343,6 +1343,63 @@ libxlDomainReboot(virDomainPtr dom, unsi
} }
static int static int
@ -76,7 +76,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
libxlDomainDestroyFlags(virDomainPtr dom, libxlDomainDestroyFlags(virDomainPtr dom,
unsigned int flags) unsigned int flags)
{ {
@@ -6445,6 +6502,7 @@ static virHypervisorDriver libxlHypervis @@ -6441,6 +6498,7 @@ static virHypervisorDriver libxlHypervis
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */ .domainShutdown = libxlDomainShutdown, /* 0.9.0 */
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */ .domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
.domainReboot = libxlDomainReboot, /* 0.9.0 */ .domainReboot = libxlDomainReboot, /* 0.9.0 */

View File

@ -77,7 +77,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
=================================================================== ===================================================================
--- libvirt-7.7.0.orig/src/libxl/libxl_driver.c --- libvirt-7.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.7.0/src/libxl/libxl_driver.c +++ libvirt-7.7.0/src/libxl/libxl_driver.c
@@ -6009,6 +6009,9 @@ libxlDomainMigratePerform3Params(virDoma @@ -6005,6 +6005,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL; const char *dname = NULL;
const char *uri = NULL; const char *uri = NULL;
int ret = -1; int ret = -1;
@ -87,7 +87,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
virReportUnsupportedError(); virReportUnsupportedError();
@@ -6025,6 +6028,15 @@ libxlDomainMigratePerform3Params(virDoma @@ -6021,6 +6024,15 @@ libxlDomainMigratePerform3Params(virDoma
virTypedParamsGetString(params, nparams, virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_DEST_NAME, VIR_MIGRATE_PARAM_DEST_NAME,
&dname) < 0 || &dname) < 0 ||
@ -103,7 +103,7 @@ Index: libvirt-7.7.0/src/libxl/libxl_driver.c
virTypedParamsGetString(params, nparams, virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_URI, VIR_MIGRATE_PARAM_URI,
&uri) < 0) &uri) < 0)
@@ -6039,11 +6051,11 @@ libxlDomainMigratePerform3Params(virDoma @@ -6035,11 +6047,11 @@ libxlDomainMigratePerform3Params(virDoma
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) { if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml, if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,