update to libvirt 6.3.0 final

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=825
This commit is contained in:
James Fehlig 2020-05-06 01:43:59 +00:00 committed by Git OBS Bridge
parent 06eb24a4dd
commit 63e8f8f9af
46 changed files with 319 additions and 2028 deletions

View File

@ -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 \

View File

@ -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

View File

@ -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 */

View File

@ -1,81 +0,0 @@
commit 34077c1b8b62bb61e76b908d0959216da0b3185f
Author: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Date: Tue Apr 14 04:37:07 2020 +0200
tests: check e820_host option handling
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
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 @@
+<domain type='xen'>
+ <name>XenGuest1</name>
+ <uuid>45b60f51-88a9-47a8-a3b3-5e66d71b2283</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <bootloader>/usr/bin/pygrub</bootloader>
+ <os>
+ <type arch='x86_64' machine='xenpv'>linux</type>
+ </os>
+ <features>
+ <xen>
+ <e820_host state='on'/>
+ </xen>
+ </features>
+ <clock offset='utc' adjustment='reset'/>
+ <on_poweroff>preserve</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>preserve</on_crash>
+ <devices>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/var/lib/xen/images/debian/disk.qcow2'/>
+ <target dev='xvda' bus='xen'/>
+ </disk>
+ <controller type='xenbus' index='0'/>
+ <interface type='ethernet'>
+ <mac address='5a:36:0e:be:00:09'/>
+ </interface>
+ <console type='pty'>
+ <target type='xen' port='0'/>
+ </console>
+ <input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
+ <memballoon model='xen'/>
+ </devices>
+</domain>
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);

View File

@ -1,34 +0,0 @@
commit 5749395bfd03fcdb55a8be6a69637a2acaaad2c9
Author: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Date: Tue Apr 14 04:37:05 2020 +0200
libxl: make use of e820_host feature
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
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 */

View File

@ -1,120 +0,0 @@
commit 8e669b382c3533793356261c6d748df56162a2c6
Author: Jim Fehlig <jfehlig@suse.com>
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 <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
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 @@
&lt;driver iothread='4'/&gt;
&lt;address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/&gt;
&lt;/controller&gt;
- &lt;controller type='xenbus' maxGrantFrames='64'/&gt;
+ &lt;controller type='xenbus' maxGrantFrames='64' maxEventChannels='2047'/&gt;
...
&lt;/devices&gt;
...</pre>
@@ -4476,7 +4476,11 @@
<dd><span class="since">Since 5.2.0</span>, the <code>xenbus</code>
controller has an optional attribute <code>maxGrantFrames</code>,
which specifies the maximum number of grant frames the controller
- makes available for connected devices.</dd>
+ makes available for connected devices.
+ <span class="since">Since 6.3.0</span>, the xenbus controller
+ supports the optional <code>maxEventChannels</code> attribute,
+ which specifies maximum number of event channels (PV interrupts)
+ that can be used by the guest.</dd>
</dl>
<p>
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 @@
<ref name="unsignedInt"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="maxEventChannels">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </optional>
</group>
</choice>
<optional>
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 */

View File

@ -1,40 +0,0 @@
commit 93b15ba0f2eb7858f8d88a5fd7354bd48bb7fc8d
Author: Lin Ma <lma@suse.com>
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 <lma@suse.com>
Message-Id: <20200416044451.21134-1-lma@suse.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
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) {

View File

@ -1,41 +0,0 @@
commit 9529e0077a3f9002d6bc7f5504ca4583e5d985f1
Author: Jim Fehlig <jfehlig@suse.com>
Date: Wed Apr 15 17:18:25 2020 -0600
libxl: make use of passthrough hypervisor feature
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
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 &&

View File

@ -1,210 +0,0 @@
commit 967f4eebdcfed014fb8ad4569e9a04cdc731e9a6
Author: Jim Fehlig <jfehlig@suse.com>
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 <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
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 @@
+<domain type='xen'>
+ <name>XenGuest1</name>
+ <uuid>45b60f51-88a9-47a8-a3b3-5e66d71b2283</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <bootloader>/usr/bin/pygrub</bootloader>
+ <os>
+ <type arch='x86_64' machine='xenpv'>linux</type>
+ </os>
+ <clock offset='utc' adjustment='reset'/>
+ <on_poweroff>preserve</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>preserve</on_crash>
+ <devices>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/var/lib/xen/images/debian/disk.qcow2'/>
+ <target dev='xvda' bus='xen'/>
+ </disk>
+ <controller type='xenbus' index='0' maxEventChannels='2047'/>
+ <interface type='ethernet'>
+ <mac address='5a:36:0e:be:00:09'/>
+ </interface>
+ <console type='pty'>
+ <target type='xen' port='0'/>
+ </console>
+ <input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
+ <memballoon model='xen'/>
+ </devices>
+</domain>
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 @@
<source file='/var/lib/xen/images/debian/disk.qcow2'/>
<target dev='xvda' bus='xen'/>
</disk>
- <controller type='usb' index='0' model='qusb2' ports='6'/>
<controller type='xenbus' index='0'/>
+ <controller type='usb' index='0' model='qusb2' ports='6'/>
<interface type='ethernet'>
<mac address='5a:36:0e:be:00:09'/>
</interface>
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");

View File

@ -1,112 +0,0 @@
commit 9cb8bc6ff1ad80aba4d3c68756166a22e830d481
Author: Jim Fehlig <jfehlig@suse.com>
Date: Wed Apr 15 21:48:42 2020 -0600
libxl: refactor cpu and hypervisor feature parser/formatter
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
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)

View File

@ -1,190 +0,0 @@
commit a93f55c53d83ec63fe703db38cb519465b1d2445
Author: Jim Fehlig <jfehlig@suse.com>
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 <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
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 @@
+<domain type='xen'>
+ <name>test-hvm</name>
+ <description>None</description>
+ <uuid>2147d599-9cc6-c0dc-92ab-4064b5446e9b</uuid>
+ <memory>1048576</memory>
+ <currentMemory>1048576</currentMemory>
+ <vcpu>4</vcpu>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <clock offset='utc'/>
+ <os>
+ <type>hvm</type>
+ <loader>/usr/lib/xen/boot/hvmloader</loader>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <apic/>
+ <acpi/>
+ <pae/>
+ </features>
+ <devices>
+ <emulator>/bin/true</emulator>
+ <disk type='file' device='disk'>
+ <driver name='qemu'/>
+ <source file='/var/lib/xen/images/test-hvm.img'/>
+ <target dev='hda'/>
+ </disk>
+ <controller type='xenbus' maxEventChannels='2047'/>
+ <interface type='bridge'>
+ <source bridge='br0'/>
+ <mac address='00:16:3e:66:12:b4'/>
+ <script path='/etc/xen/scripts/vif-bridge'/>
+ </interface>
+ <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
+ </devices>
+</domain>
Index: libvirt-6.2.0/tests/libxlxml2domconfigtest.c
===================================================================
--- libvirt-6.2.0.orig/tests/libxlxml2domconfigtest.c
+++ libvirt-6.2.0/tests/libxlxml2domconfigtest.c
@@ -202,6 +202,8 @@ mymain(void)
DO_TEST("max-gntframes-hvm");
# endif
+ DO_TEST("max-eventchannels-hvm");
+
unlink("libxl-driver.log");
testXLFreeDriver(driver);

View File

@ -1,112 +0,0 @@
commit b523e22521afe733165869c9e1ae18e88536acd6
Author: Jim Fehlig <jfehlig@suse.com>
Date: Thu Apr 16 08:31:48 2020 -0600
xenconfig: Add support for 'passthrough' hypervisor feature
Add support for xl.cfg(5) 'passthrough' option in the domXML-to-xenconfig
configuration converter.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-6.2.0/src/libvirt_private.syms
===================================================================
--- libvirt-6.2.0.orig/src/libvirt_private.syms
+++ libvirt-6.2.0/src/libvirt_private.syms
@@ -650,6 +650,8 @@ virDomainWatchdogActionTypeToString;
virDomainWatchdogDefFree;
virDomainWatchdogModelTypeFromString;
virDomainWatchdogModelTypeToString;
+virDomainXenPassthroughModeTypeFromString;
+virDomainXenPassthroughModeTypeToString;
virDomainXMLOptionGetNamespace;
virDomainXMLOptionGetSaveCookie;
virDomainXMLOptionNew;
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
@@ -530,14 +530,14 @@ xenParseCPU(virConfPtr conf,
static int
xenParseHypervisorFeatures(virConfPtr conf, virDomainDefPtr def)
{
- g_autofree char *tsc_mode = NULL;
+ g_autofree char *strval = NULL;
virDomainTimerDefPtr timer;
int val = 0;
- if (xenConfigGetString(conf, "tsc_mode", &tsc_mode, NULL) < 0)
+ if (xenConfigGetString(conf, "tsc_mode", &strval, NULL) < 0)
return -1;
- if (tsc_mode) {
+ if (strval) {
if (VIR_EXPAND_N(def->clock.timers, def->clock.ntimers, 1) < 0 ||
VIR_ALLOC(timer) < 0)
return -1;
@@ -547,16 +547,40 @@ xenParseHypervisorFeatures(virConfPtr co
timer->tickpolicy = -1;
timer->mode = VIR_DOMAIN_TIMER_MODE_AUTO;
timer->track = -1;
- if (STREQ_NULLABLE(tsc_mode, "always_emulate"))
+ if (STREQ_NULLABLE(strval, "always_emulate"))
timer->mode = VIR_DOMAIN_TIMER_MODE_EMULATE;
- else if (STREQ_NULLABLE(tsc_mode, "native"))
+ else if (STREQ_NULLABLE(strval, "native"))
timer->mode = VIR_DOMAIN_TIMER_MODE_NATIVE;
- else if (STREQ_NULLABLE(tsc_mode, "native_paravirt"))
+ else if (STREQ_NULLABLE(strval, "native_paravirt"))
timer->mode = VIR_DOMAIN_TIMER_MODE_PARAVIRT;
def->clock.timers[def->clock.ntimers - 1] = timer;
}
+ if (xenConfigGetString(conf, "passthrough", &strval, NULL) < 0)
+ return -1;
+
+ if (strval) {
+ if (STREQ(strval, "disabled")) {
+ def->features[VIR_DOMAIN_FEATURE_XEN] = VIR_TRISTATE_SWITCH_OFF;
+ def->xen_features[VIR_DOMAIN_XEN_PASSTHROUGH] = VIR_TRISTATE_SWITCH_OFF;
+ } else if (STREQ(strval, "enabled")) {
+ def->features[VIR_DOMAIN_FEATURE_XEN] = VIR_TRISTATE_SWITCH_ON;
+ def->xen_features[VIR_DOMAIN_XEN_PASSTHROUGH] = VIR_TRISTATE_SWITCH_ON;
+ } else if (STREQ(strval, "sync_pt")) {
+ def->features[VIR_DOMAIN_FEATURE_XEN] = VIR_TRISTATE_SWITCH_ON;
+ def->xen_features[VIR_DOMAIN_XEN_PASSTHROUGH] = VIR_TRISTATE_SWITCH_ON;
+ def->xen_passthrough_mode = VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SYNC_PT;
+ } else if (STREQ(strval, "share_pt")) {
+ def->features[VIR_DOMAIN_FEATURE_XEN] = VIR_TRISTATE_SWITCH_ON;
+ def->xen_features[VIR_DOMAIN_XEN_PASSTHROUGH] = VIR_TRISTATE_SWITCH_ON;
+ def->xen_passthrough_mode = VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SHARE_PT;
+ } else {
+ virReportError(VIR_ERR_CONF_SYNTAX,
+ _("Invalid passthrough mode %s"), strval);
+ }
+ }
+
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
if (xenConfigGetBool(conf, "pae", &val, 1) < 0)
return -1;
@@ -2163,6 +2187,20 @@ xenFormatHypervisorFeatures(virConfPtr c
}
}
+ if (def->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) {
+ if (def->xen_features[VIR_DOMAIN_XEN_PASSTHROUGH] == VIR_TRISTATE_SWITCH_ON) {
+ if (def->xen_passthrough_mode == VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SYNC_PT ||
+ def->xen_passthrough_mode == VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SHARE_PT) {
+ if (xenConfigSetString(conf, "passthrough",
+ virDomainXenPassthroughModeTypeToString(def->xen_passthrough_mode)) < 0)
+ return -1;
+ } else {
+ if (xenConfigSetString(conf, "passthrough", "enabled") < 0)
+ return -1;
+ }
+ }
+ }
+
for (i = 0; i < def->clock.ntimers; i++) {
switch ((virDomainTimerNameType)def->clock.timers[i]->name) {
case VIR_DOMAIN_TIMER_NAME_TSC:

View File

@ -1,292 +0,0 @@
commit b7d6648d436fe0a99d4faf0f99c88a27a7bfea33
Author: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Date: Tue Apr 14 04:37:04 2020 +0200
conf: add xen specific feature: e820_host
e820_host is a Xen-specific option, only available for PV domains, that
provides the domain a virtual e820 memory map based on the host one. It
is enabled with a new Xen hypervisor feature, e.g.
<features>
<xen>
<e820_host state='on'/>
</xen>
</features>
e820_host is required when using PCI passthrough and is generally
considered safe for any PV kernel. e820_host is silently ignored if set
in HVM domain configuration. See xl.cfg(5) man page in the Xen
documentation for more details.
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
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
@@ -2055,6 +2055,9 @@
&lt;hidden state='on'/&gt;
&lt;hint-dedicated state='on'/&gt;
&lt;/kvm&gt;
+ &lt;xen&gt;
+ &lt;e820_host state='on'/&gt;
+ &lt;/xen&gt;
&lt;pvspinlock state='on'/&gt;
&lt;gic version='2'/&gt;
&lt;ioapic driver='qemu'/&gt;
@@ -2236,6 +2239,23 @@
</tr>
</table>
</dd>
+ <dt><code>xen</code></dt>
+ <dd>Various features to change the behavior of the Xen hypervisor.
+ <table class="top_table">
+ <tr>
+ <th>Feature</th>
+ <th>Description</th>
+ <th>Value</th>
+ <th>Since</th>
+ </tr>
+ <tr>
+ <td>e820_host</td>
+ <td>Expose the host e820 to the guest (PV only)</td>
+ <td>on, off</td>
+ <td><span class="since">6.3.0</span></td>
+ </tr>
+ </table>
+ </dd>
<dt><code>pmu</code></dt>
<dd>Depending on the <code>state</code> attribute (values <code>on</code>,
<code>off</code>, default <code>on</code>) enable or disable the
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
@@ -5334,6 +5334,9 @@
<ref name="kvm"/>
</optional>
<optional>
+ <ref name="xen"/>
+ </optional>
+ <optional>
<element name="privnet">
<empty/>
</element>
@@ -6313,6 +6316,19 @@
<ref name="featurestate"/>
</element>
</optional>
+ </interleave>
+ </element>
+ </define>
+
+ <!-- Optional Xen features -->
+ <define name="xen">
+ <element name="xen">
+ <interleave>
+ <optional>
+ <element name="e820_host">
+ <ref name="featurestate"/>
+ </element>
+ </optional>
</interleave>
</element>
</define>
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
@@ -174,6 +174,7 @@ VIR_ENUM_IMPL(virDomainFeature,
"nested-hv",
"msrs",
"ccf-assist",
+ "xen",
);
VIR_ENUM_IMPL(virDomainCapabilitiesPolicy,
@@ -207,6 +208,11 @@ VIR_ENUM_IMPL(virDomainKVM,
"hint-dedicated",
);
+VIR_ENUM_IMPL(virDomainXen,
+ VIR_DOMAIN_XEN_LAST,
+ "e820_host"
+);
+
VIR_ENUM_IMPL(virDomainMsrsUnknown,
VIR_DOMAIN_MSRS_UNKNOWN_LAST,
"ignore",
@@ -20810,6 +20816,7 @@ virDomainDefParseXML(xmlDocPtr xml,
case VIR_DOMAIN_FEATURE_HYPERV:
case VIR_DOMAIN_FEATURE_KVM:
case VIR_DOMAIN_FEATURE_MSRS:
+ case VIR_DOMAIN_FEATURE_XEN:
def->features[val] = VIR_TRISTATE_SWITCH_ON;
break;
@@ -21120,6 +21127,51 @@ virDomainDefParseXML(xmlDocPtr xml,
VIR_FREE(nodes);
}
+ if (def->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) {
+ int feature;
+ int value;
+ if ((n = virXPathNodeSet("./features/xen/*", ctxt, &nodes)) < 0)
+ goto error;
+
+ for (i = 0; i < n; i++) {
+ feature = virDomainXenTypeFromString((const char *)nodes[i]->name);
+ if (feature < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("unsupported Xen feature: %s"),
+ nodes[i]->name);
+ goto error;
+ }
+
+ switch ((virDomainXen) feature) {
+ case VIR_DOMAIN_XEN_E820_HOST:
+ if (!(tmp = virXMLPropString(nodes[i], "state"))) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("missing 'state' attribute for "
+ "Xen feature '%s'"),
+ nodes[i]->name);
+ goto error;
+ }
+
+ if ((value = virTristateSwitchTypeFromString(tmp)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("invalid value of state argument "
+ "for Xen feature '%s'"),
+ nodes[i]->name);
+ goto error;
+ }
+
+ VIR_FREE(tmp);
+ def->xen_features[feature] = value;
+ break;
+
+ /* coverity[dead_error_begin] */
+ case VIR_DOMAIN_XEN_LAST:
+ break;
+ }
+ }
+ VIR_FREE(nodes);
+ }
+
if (def->features[VIR_DOMAIN_FEATURE_SMM] == VIR_TRISTATE_SWITCH_ON) {
int rv = virDomainParseScaledValue("string(./features/smm/tseg)",
"string(./features/smm/tseg/@unit)",
@@ -23113,6 +23165,7 @@ virDomainDefFeaturesCheckABIStability(vi
case VIR_DOMAIN_FEATURE_PRIVNET:
case VIR_DOMAIN_FEATURE_HYPERV:
case VIR_DOMAIN_FEATURE_KVM:
+ case VIR_DOMAIN_FEATURE_XEN:
case VIR_DOMAIN_FEATURE_PVSPINLOCK:
case VIR_DOMAIN_FEATURE_PMU:
case VIR_DOMAIN_FEATURE_VMPORT:
@@ -23284,6 +23337,30 @@ virDomainDefFeaturesCheckABIStability(vi
}
}
+ /* xen */
+ if (src->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) {
+ for (i = 0; i < VIR_DOMAIN_XEN_LAST; i++) {
+ switch ((virDomainXen) i) {
+ case VIR_DOMAIN_XEN_E820_HOST:
+ if (src->xen_features[i] != dst->xen_features[i]) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("State of Xen feature '%s' differs: "
+ "source: '%s', destination: '%s'"),
+ virDomainXenTypeToString(i),
+ virTristateSwitchTypeToString(src->xen_features[i]),
+ virTristateSwitchTypeToString(dst->xen_features[i]));
+ return false;
+ }
+
+ break;
+
+ /* coverity[dead_error_begin] */
+ case VIR_DOMAIN_XEN_LAST:
+ break;
+ }
+ }
+ }
+
/* kvm */
if (src->features[VIR_DOMAIN_FEATURE_KVM] == VIR_TRISTATE_SWITCH_ON) {
for (i = 0; i < VIR_DOMAIN_KVM_LAST; i++) {
@@ -28885,6 +28962,31 @@ virDomainDefFormatFeatures(virBufferPtr
virBufferAddLit(&childBuf, "</kvm>\n");
break;
+ case VIR_DOMAIN_FEATURE_XEN:
+ if (def->features[i] != VIR_TRISTATE_SWITCH_ON)
+ break;
+
+ virBufferAddLit(&childBuf, "<xen>\n");
+ virBufferAdjustIndent(&childBuf, 2);
+ for (j = 0; j < VIR_DOMAIN_XEN_LAST; j++) {
+ switch ((virDomainXen) j) {
+ case VIR_DOMAIN_XEN_E820_HOST:
+ if (def->xen_features[j])
+ virBufferAsprintf(&childBuf, "<%s state='%s'/>\n",
+ virDomainXenTypeToString(j),
+ virTristateSwitchTypeToString(
+ def->xen_features[j]));
+ break;
+
+ /* coverity[dead_error_begin] */
+ case VIR_DOMAIN_XEN_LAST:
+ break;
+ }
+ }
+ virBufferAdjustIndent(&childBuf, -2);
+ virBufferAddLit(&childBuf, "</xen>\n");
+ break;
+
case VIR_DOMAIN_FEATURE_CAPABILITIES:
for (j = 0; j < VIR_DOMAIN_PROCES_CAPS_FEATURE_LAST; j++) {
if (def->caps_features[j] != VIR_TRISTATE_SWITCH_ABSENT)
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
@@ -1800,6 +1800,7 @@ typedef enum {
VIR_DOMAIN_FEATURE_NESTED_HV,
VIR_DOMAIN_FEATURE_MSRS,
VIR_DOMAIN_FEATURE_CCF_ASSIST,
+ VIR_DOMAIN_FEATURE_XEN,
VIR_DOMAIN_FEATURE_LAST
} virDomainFeature;
@@ -1846,6 +1847,12 @@ typedef enum {
} virDomainMsrsUnknown;
typedef enum {
+ VIR_DOMAIN_XEN_E820_HOST = 0,
+
+ VIR_DOMAIN_XEN_LAST
+} virDomainXen;
+
+typedef enum {
VIR_DOMAIN_CAPABILITIES_POLICY_DEFAULT = 0,
VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW,
VIR_DOMAIN_CAPABILITIES_POLICY_DENY,
@@ -2469,6 +2476,7 @@ struct _virDomainDef {
int hyperv_features[VIR_DOMAIN_HYPERV_LAST];
int kvm_features[VIR_DOMAIN_KVM_LAST];
int msrs_features[VIR_DOMAIN_MSRS_LAST];
+ int xen_features[VIR_DOMAIN_XEN_LAST];
unsigned int hyperv_spinlocks;
int hyperv_stimer_direct;
virGICVersion gic_version;
@@ -3514,6 +3522,7 @@ VIR_ENUM_DECL(virDomainGraphicsSpiceMous
VIR_ENUM_DECL(virDomainGraphicsVNCSharePolicy);
VIR_ENUM_DECL(virDomainHyperv);
VIR_ENUM_DECL(virDomainKVM);
+VIR_ENUM_DECL(virDomainXen);
VIR_ENUM_DECL(virDomainMsrsUnknown);
VIR_ENUM_DECL(virDomainRNGModel);
VIR_ENUM_DECL(virDomainRNGBackend);

View File

@ -1,137 +0,0 @@
commit bed325253681fa61537b01be821538479fa9df60
Author: Jim Fehlig <jfehlig@suse.com>
Date: Fri Apr 17 14:19:16 2020 -0600
tests: check conversion of passthrough hypervisor feature
Add a new test to check the 'mode' attribute of the passthrough element
and augment an existing, related test to check enablement of the
passthrough element only.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-6.2.0/tests/xlconfigdata/test-fullvirt-hypervisor-features.cfg
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tests/xlconfigdata/test-fullvirt-hypervisor-features.cfg
@@ -0,0 +1,26 @@
+name = "XenGuest2"
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+maxmem = 579
+memory = 394
+vcpus = 1
+pae = 1
+acpi = 1
+apic = 1
+viridian = 0
+passthrough = "share_pt"
+rtc_timeoffset = 0
+localtime = 0
+on_poweroff = "destroy"
+on_reboot = "restart"
+on_crash = "restart"
+device_model = "/usr/lib/xen/bin/qemu-system-i386"
+sdl = 0
+vnc = 1
+vncunused = 1
+vnclisten = "127.0.0.1"
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000" ]
+parallel = "none"
+serial = "none"
+builder = "hvm"
+boot = "c"
+disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2" ]
Index: libvirt-6.2.0/tests/xlconfigdata/test-fullvirt-hypervisor-features.xml
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tests/xlconfigdata/test-fullvirt-hypervisor-features.xml
@@ -0,0 +1,50 @@
+<domain type='xen'>
+ <name>XenGuest2</name>
+ <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>592896</memory>
+ <currentMemory unit='KiB'>403456</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='xenfv'>hvm</type>
+ <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ <xen>
+ <passthrough state='on' mode='share_pt'/>
+ </xen>
+ </features>
+ <clock offset='variable' adjustment='0' basis='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
+ <disk type='block' device='disk'>
+ <driver name='phy' type='raw'/>
+ <source dev='/dev/HostVG/XenGuest2'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='xenbus' index='0'/>
+ <controller type='ide' index='0'/>
+ <interface type='bridge'>
+ <mac address='00:16:3e:66:92:9c'/>
+ <source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
+ <model type='e1000'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
+ <listen type='address' address='127.0.0.1'/>
+ </graphics>
+ <video>
+ <model type='cirrus' vram='8192' heads='1' primary='yes'/>
+ </video>
+ <memballoon model='xen'/>
+ </devices>
+</domain>
Index: libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.cfg
===================================================================
--- libvirt-6.2.0.orig/tests/xlconfigdata/test-paravirt-e820_host.cfg
+++ libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.cfg
@@ -4,6 +4,7 @@ maxmem = 512
memory = 512
vcpus = 4
e820_host = 1
+passthrough = "enabled"
localtime = 0
on_poweroff = "preserve"
on_reboot = "restart"
Index: libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.xml
===================================================================
--- libvirt-6.2.0.orig/tests/xlconfigdata/test-paravirt-e820_host.xml
+++ libvirt-6.2.0/tests/xlconfigdata/test-paravirt-e820_host.xml
@@ -11,6 +11,7 @@
<features>
<xen>
<e820_host state='on'/>
+ <passthrough state='on'/>
</xen>
</features>
<clock offset='utc' adjustment='reset'/>
Index: libvirt-6.2.0/tests/xlconfigtest.c
===================================================================
--- libvirt-6.2.0.orig/tests/xlconfigtest.c
+++ libvirt-6.2.0/tests/xlconfigtest.c
@@ -301,6 +301,9 @@ mymain(void)
DO_TEST("usb");
DO_TEST("usbctrl");
DO_TEST("paravirt-e820_host");
+#ifdef LIBXL_HAVE_CREATEINFO_PASSTHROUGH
+ DO_TEST("fullvirt-hypervisor-features");
+#endif
testXLFreeDriver(driver);

View File

@ -3,10 +3,10 @@ tests: temporarily disable the new multipath PR tests
The new multipath PR tests are failing in a build root env.
Disable them for now until discussing a solution with upstream.
Index: libvirt-6.2.0/tests/qemuhotplugtest.c
Index: libvirt-6.3.0/tests/qemuhotplugtest.c
===================================================================
--- libvirt-6.2.0.orig/tests/qemuhotplugtest.c
+++ libvirt-6.2.0/tests/qemuhotplugtest.c
--- libvirt-6.3.0.orig/tests/qemuhotplugtest.c
+++ libvirt-6.3.0/tests/qemuhotplugtest.c
@@ -87,8 +87,6 @@ qemuHotplugCreateObjects(virDomainXMLOpt
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VNC);
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE);
@ -16,7 +16,7 @@ Index: libvirt-6.2.0/tests/qemuhotplugtest.c
if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0)
return -1;
@@ -757,17 +755,6 @@ mymain(void)
@@ -755,17 +753,6 @@ mymain(void)
"device_del", QMP_DEVICE_DELETED("scsi3-0-5-6") QMP_OK,
"human-monitor-command", HMP(""));
@ -25,11 +25,11 @@ Index: libvirt-6.2.0/tests/qemuhotplugtest.c
- "human-monitor-command", HMP("OK\\r\\n"),
- "device_add", QMP_OK);
- DO_TEST_DETACH("base-live", "disk-scsi-multipath", true, true,
- "device_del", QMP_OK,
- "human-monitor-command", HMP(""));
- "device_del", QMP_OK);
- DO_TEST_DETACH("base-live", "disk-scsi-multipath", false, false,
- "device_del", QMP_DEVICE_DELETED("scsi0-0-0-0") QMP_OK,
- "human-monitor-command", HMP(""));
- "human-monitor-command", HMP(""),
- "object-del", QMP_OK);
-
DO_TEST_ATTACH("base-live", "qemu-agent", false, true,
"chardev-add", QMP_OK,

View File

@ -1,40 +0,0 @@
commit f3ef7dafc8a60e6e21ac31cbbc019aa76a34e523
Author: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Date: Tue Apr 14 04:37:06 2020 +0200
xenconfig: parse e820_host option
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
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
@@ -592,6 +592,13 @@ xenParseCPUFeatures(virConfPtr conf,
def->clock.timers[def->clock.ntimers - 1] = timer;
}
+ } else {
+ if (xenConfigGetBool(conf, "e820_host", &val, 0) < 0) {
+ return -1;
+ } else if (val) {
+ def->features[VIR_DOMAIN_FEATURE_XEN] = VIR_TRISTATE_SWITCH_ON;
+ def->xen_features[VIR_DOMAIN_XEN_E820_HOST] = VIR_TRISTATE_SWITCH_ON;
+ }
}
return 0;
@@ -2138,6 +2145,12 @@ xenFormatCPUFeatures(virConfPtr conf, vi
(def->features[VIR_DOMAIN_FEATURE_VIRIDIAN] ==
VIR_TRISTATE_SWITCH_ON) ? 1 : 0) < 0)
return -1;
+ } else {
+ if (def->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) {
+ if (def->xen_features[VIR_DOMAIN_XEN_E820_HOST] == VIR_TRISTATE_SWITCH_ON)
+ if (xenConfigSetInt(conf, "e820_host", 1) < 0)
+ return -1;
+ }
}
for (i = 0; i < def->clock.ntimers; i++) {

View File

@ -1,291 +0,0 @@
commit fadbaa23757ff9dca329bdb8d3447c27599f6884
Author: Jim Fehlig <jfehlig@suse.com>
Date: Wed Apr 15 16:34:54 2020 -0600
conf: add xen hypervisor feature 'passthrough'
'passthrough' is Xen-Specific guest configuration option new to Xen 4.13
that enables IOMMU mappings for a guest and hence whether it supports PCI
passthrough. The default is disabled. See the xl.cfg(5) man page and
xen.git commit babde47a3fe for more details.
The default state of disabled prevents hotlugging PCI devices. However,
if the guest configuration contains a PCI passthrough device at time of
creation, libxl will automatically enable 'passthrough' and subsequent
hotplugging of PCI devices will also be possible. It is not possible to
unconditionally enable 'passthrough' since it would introduce a migration
incompatibility due to guest ABI change. Instead, introduce another Xen
hypervisor feature that can be used to enable guest PCI passthrough
<features>
<xen>
<passthrough state='on'/>
</xen>
</features>
To allow finer control over how IOMMU maps to guest P2M table, the
passthrough element also supports a 'mode' attribute with values
restricted to snyc_pt and share_pt, similar to xl.cfg(5) 'passthrough'
setting .
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
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
@@ -2057,6 +2057,7 @@
&lt;/kvm&gt;
&lt;xen&gt;
&lt;e820_host state='on'/&gt;
+ &lt;passthrough state='on' mode='share_pt'/&gt;
&lt;/xen&gt;
&lt;pvspinlock state='on'/&gt;
&lt;gic version='2'/&gt;
@@ -2254,6 +2255,12 @@
<td>on, off</td>
<td><span class="since">6.3.0</span></td>
</tr>
+ <tr>
+ <td>passthrough</td>
+ <td>Enable IOMMU mappings allowing PCI passthrough)</td>
+ <td>on, off; mode - optional string sync_pt or share_pt</td>
+ <td><span class="since">6.3.0</span></td>
+ </tr>
</table>
</dd>
<dt><code>pmu</code></dt>
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
@@ -6329,6 +6329,18 @@
<ref name="featurestate"/>
</element>
</optional>
+ <optional>
+ <element name="passthrough">
+ <ref name="featurestate"/>
+ <optional>
+ <attribute name="mode">
+ <data type="string">
+ <param name='pattern'>(sync_pt|share_pt)</param>
+ </data>
+ </attribute>
+ </optional>
+ </element>
+ </optional>
</interleave>
</element>
</define>
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
@@ -210,7 +210,15 @@ VIR_ENUM_IMPL(virDomainKVM,
VIR_ENUM_IMPL(virDomainXen,
VIR_DOMAIN_XEN_LAST,
- "e820_host"
+ "e820_host",
+ "passthrough",
+);
+
+VIR_ENUM_IMPL(virDomainXenPassthroughMode,
+ VIR_DOMAIN_XEN_PASSTHROUGH_MODE_LAST,
+ "default",
+ "sync_pt",
+ "share_pt",
);
VIR_ENUM_IMPL(virDomainMsrsUnknown,
@@ -21130,6 +21138,8 @@ virDomainDefParseXML(xmlDocPtr xml,
if (def->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) {
int feature;
int value;
+ g_autofree char *ptval = NULL;
+
if ((n = virXPathNodeSet("./features/xen/*", ctxt, &nodes)) < 0)
goto error;
@@ -21142,27 +21152,53 @@ virDomainDefParseXML(xmlDocPtr xml,
goto error;
}
+ if (!(tmp = virXMLPropString(nodes[i], "state"))) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("missing 'state' attribute for "
+ "Xen feature '%s'"),
+ nodes[i]->name);
+ goto error;
+ }
+
+ if ((value = virTristateSwitchTypeFromString(tmp)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("invalid value of state argument "
+ "for Xen feature '%s'"),
+ nodes[i]->name);
+ goto error;
+ }
+
+ VIR_FREE(tmp);
+ def->xen_features[feature] = value;
+
switch ((virDomainXen) feature) {
case VIR_DOMAIN_XEN_E820_HOST:
- if (!(tmp = virXMLPropString(nodes[i], "state"))) {
- virReportError(VIR_ERR_XML_ERROR,
- _("missing 'state' attribute for "
- "Xen feature '%s'"),
- nodes[i]->name);
- goto error;
- }
+ break;
- if ((value = virTristateSwitchTypeFromString(tmp)) < 0) {
+ case VIR_DOMAIN_XEN_PASSTHROUGH:
+ if (value != VIR_TRISTATE_SWITCH_ON)
+ break;
+
+ if ((ptval = virXMLPropString(nodes[i], "mode"))) {
+ int mode = virDomainXenPassthroughModeTypeFromString(ptval);
+
+ if (mode < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("invalid value of state argument "
- "for Xen feature '%s'"),
- nodes[i]->name);
+ _("unsupported mode '%s' for Xen passthrough feature"),
+ ptval);
goto error;
}
- VIR_FREE(tmp);
- def->xen_features[feature] = value;
- break;
+ if (mode != VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SYNC_PT &&
+ mode != VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SHARE_PT) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("'mode' attribute for Xen feature "
+ "'passthrough' must be 'sync_pt' or 'share_pt'"));
+ goto error;
+ }
+ def->xen_passthrough_mode = mode;
+ }
+ break;
/* coverity[dead_error_begin] */
case VIR_DOMAIN_XEN_LAST:
@@ -23340,18 +23376,28 @@ virDomainDefFeaturesCheckABIStability(vi
/* xen */
if (src->features[VIR_DOMAIN_FEATURE_XEN] == VIR_TRISTATE_SWITCH_ON) {
for (i = 0; i < VIR_DOMAIN_XEN_LAST; i++) {
+ if (src->xen_features[i] != dst->xen_features[i]) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("State of Xen feature '%s' differs: "
+ "source: '%s', destination: '%s'"),
+ virDomainXenTypeToString(i),
+ virTristateSwitchTypeToString(src->xen_features[i]),
+ virTristateSwitchTypeToString(dst->xen_features[i]));
+ return false;
+ }
switch ((virDomainXen) i) {
case VIR_DOMAIN_XEN_E820_HOST:
- if (src->xen_features[i] != dst->xen_features[i]) {
+ break;
+
+ case VIR_DOMAIN_XEN_PASSTHROUGH:
+ if (src->xen_passthrough_mode != dst->xen_passthrough_mode) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("State of Xen feature '%s' differs: "
+ _("'mode' of Xen passthrough feature differs: "
"source: '%s', destination: '%s'"),
- virDomainXenTypeToString(i),
- virTristateSwitchTypeToString(src->xen_features[i]),
- virTristateSwitchTypeToString(dst->xen_features[i]));
+ virDomainXenPassthroughModeTypeToString(src->xen_passthrough_mode),
+ virDomainXenPassthroughModeTypeToString(dst->xen_passthrough_mode));
return false;
}
-
break;
/* coverity[dead_error_begin] */
@@ -28969,13 +29015,30 @@ virDomainDefFormatFeatures(virBufferPtr
virBufferAddLit(&childBuf, "<xen>\n");
virBufferAdjustIndent(&childBuf, 2);
for (j = 0; j < VIR_DOMAIN_XEN_LAST; j++) {
+ if (def->xen_features[j] == VIR_TRISTATE_SWITCH_ABSENT)
+ continue;
+
+ virBufferAsprintf(&childBuf, "<%s state='%s'",
+ virDomainXenTypeToString(j),
+ virTristateSwitchTypeToString(
+ def->xen_features[j]));
+
switch ((virDomainXen) j) {
case VIR_DOMAIN_XEN_E820_HOST:
- if (def->xen_features[j])
- virBufferAsprintf(&childBuf, "<%s state='%s'/>\n",
- virDomainXenTypeToString(j),
- virTristateSwitchTypeToString(
- def->xen_features[j]));
+ virBufferAddLit(&childBuf, "/>\n");
+ break;
+ case VIR_DOMAIN_XEN_PASSTHROUGH:
+ if (def->xen_features[j] != VIR_TRISTATE_SWITCH_ON) {
+ virBufferAddLit(&childBuf, "/>\n");
+ break;
+ }
+ if (def->xen_passthrough_mode == VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SYNC_PT ||
+ def->xen_passthrough_mode == VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SHARE_PT) {
+ virBufferEscapeString(&childBuf, " mode='%s'/>\n",
+ virDomainXenPassthroughModeTypeToString(def->xen_passthrough_mode));
+ } else {
+ virBufferAddLit(&childBuf, "/>\n");
+ }
break;
/* coverity[dead_error_begin] */
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
@@ -1848,11 +1848,20 @@ typedef enum {
typedef enum {
VIR_DOMAIN_XEN_E820_HOST = 0,
+ VIR_DOMAIN_XEN_PASSTHROUGH,
VIR_DOMAIN_XEN_LAST
} virDomainXen;
typedef enum {
+ VIR_DOMAIN_XEN_PASSTHROUGH_MODE_DEFAULT = 0,
+ VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SYNC_PT,
+ VIR_DOMAIN_XEN_PASSTHROUGH_MODE_SHARE_PT,
+
+ VIR_DOMAIN_XEN_PASSTHROUGH_MODE_LAST
+} virDomainXenPassthroughMode;
+
+typedef enum {
VIR_DOMAIN_CAPABILITIES_POLICY_DEFAULT = 0,
VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW,
VIR_DOMAIN_CAPABILITIES_POLICY_DENY,
@@ -2477,6 +2486,7 @@ struct _virDomainDef {
int kvm_features[VIR_DOMAIN_KVM_LAST];
int msrs_features[VIR_DOMAIN_MSRS_LAST];
int xen_features[VIR_DOMAIN_XEN_LAST];
+ int xen_passthrough_mode;
unsigned int hyperv_spinlocks;
int hyperv_stimer_direct;
virGICVersion gic_version;
@@ -3523,6 +3533,7 @@ VIR_ENUM_DECL(virDomainGraphicsVNCShareP
VIR_ENUM_DECL(virDomainHyperv);
VIR_ENUM_DECL(virDomainKVM);
VIR_ENUM_DECL(virDomainXen);
+VIR_ENUM_DECL(virDomainXenPassthroughMode);
VIR_ENUM_DECL(virDomainMsrsUnknown);
VIR_ENUM_DECL(virDomainRNGModel);
VIR_ENUM_DECL(virDomainRNGBackend);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aec8881f236917c4f8064918df546ed3aacd0bb8a2f312f4d37485721cce0fb1
size 8307248

View File

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl6GOV8ACgkQFViLJllr
6l10PAgAi2s7PQLVyGL7xHK12AO7HfH/e2jNoE+LDJfJa1SQITYLW2x3zdEV27JW
SN8Hokf9dgRke0uJTBsQxcUxyRXFJkaGJ9pkUwkMuiUFA7fUWUPzBlBV8seaEqaf
102Zr/VWsP90FmrZ8oQ14VOEw8IB6Jmi07hd+9I6uY+PdBeUz5YtZ1pQYOda9v+a
yMsCDRusZKnpmVxbN1mlbmowq4rlJWDGouDpOFeB/u6RimdbAucYSfDF0RMz46Jt
wqUne7gAeCeP0GprHrM5/gURFcepXC9muB2iUY/uQyMN96bfVyjU9M1xlSQcGiOZ
Uuv0UCXfBYXFnhwb75RG91hxTGrlUg==
=wKUd
-----END PGP SIGNATURE-----

3
libvirt-6.3.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5
size 8442636

11
libvirt-6.3.0.tar.xz.asc Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl6xDD0ACgkQFViLJllr
6l01XQf/Rrt1ueDNLZEg/e8l42gKyoiC7lIZndYRGqpF0+P7CfWKRQAXktckuNdJ
kVgP6lPl/pFZmsWUsYvb3GolB4OXIfavTgJx1LM+ku5Qa4RPJf8b9O9nikyisbrf
xZe4HM+Z/DQ5ia9gt5/OrVg/uU2NW6bBsktPnRutfUbGP1lGY5a6crNFdSo2nYoy
QbeRPUU8dDy1UCKOpl+Xm6EHbukq0Zj/nW+xRn+kiXQcMs46OfDHCU8J2mpmtJxC
HJEHUZgZ2OymyzITtpg0CecfCixPVle2H+8zd8YOFpqx/IfL4WaNJgy1f4fjBFy9
FgWXzzAwc80Cf4pMJzBZMynxNdfmRA==
=kmvm
-----END PGP SIGNATURE-----

View File

@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
From: <ro@suse.de>
Index: libvirt-6.2.0/src/cpu_map/ppc64_POWER8.xml
Index: libvirt-6.3.0/src/cpu_map/ppc64_POWER8.xml
===================================================================
--- libvirt-6.2.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-6.2.0/src/cpu_map/ppc64_POWER8.xml
--- libvirt-6.3.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-6.3.0/src/cpu_map/ppc64_POWER8.xml
@@ -4,5 +4,7 @@
<pvr value='0x004b0000' mask='0xffff0000'/>
<pvr value='0x004c0000' mask='0xffff0000'/>

View File

@ -1,7 +1,7 @@
Index: libvirt-6.2.0/configure.ac
Index: libvirt-6.3.0/configure.ac
===================================================================
--- libvirt-6.2.0.orig/configure.ac
+++ libvirt-6.2.0/configure.ac
--- libvirt-6.3.0.orig/configure.ac
+++ libvirt-6.3.0/configure.ac
@@ -278,6 +278,7 @@ LIBVIRT_ARG_LIBSSH
LIBVIRT_ARG_LIBXML
LIBVIRT_ARG_MACVTAP
@ -26,10 +26,10 @@ Index: libvirt-6.2.0/configure.ac
LIBVIRT_RESULT_NLS
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL
Index: libvirt-6.2.0/tools/virsh.c
Index: libvirt-6.3.0/tools/virsh.c
===================================================================
--- libvirt-6.2.0.orig/tools/virsh.c
+++ libvirt-6.2.0/tools/virsh.c
--- libvirt-6.3.0.orig/tools/virsh.c
+++ libvirt-6.3.0/tools/virsh.c
@@ -547,6 +547,8 @@ virshShowVersion(vshControl *ctl G_GNUC_
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
@ -39,10 +39,10 @@ Index: libvirt-6.2.0/tools/virsh.c
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
Index: libvirt-6.2.0/src/interface/interface_backend_netcf.c
Index: libvirt-6.3.0/src/interface/interface_backend_netcf.c
===================================================================
--- libvirt-6.2.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-6.2.0/src/interface/interface_backend_netcf.c
--- libvirt-6.3.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-6.3.0/src/interface/interface_backend_netcf.c
@@ -21,7 +21,12 @@
#include <config.h>
@ -154,10 +154,10 @@ Index: libvirt-6.2.0/src/interface/interface_backend_netcf.c
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
return -1;
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
Index: libvirt-6.2.0/src/interface/interface_driver.c
Index: libvirt-6.3.0/src/interface/interface_driver.c
===================================================================
--- libvirt-6.2.0.orig/src/interface/interface_driver.c
+++ libvirt-6.2.0/src/interface/interface_driver.c
--- libvirt-6.3.0.orig/src/interface/interface_driver.c
+++ libvirt-6.3.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@ -175,10 +175,10 @@ Index: libvirt-6.2.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
Index: libvirt-6.2.0/m4/virt-netcontrol.m4
Index: libvirt-6.3.0/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
+++ libvirt-6.2.0/m4/virt-netcontrol.m4
+++ libvirt-6.3.0/m4/virt-netcontrol.m4
@@ -0,0 +1,39 @@
+dnl The libnetcontrol library
+dnl
@ -219,10 +219,10 @@ Index: libvirt-6.2.0/m4/virt-netcontrol.m4
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
+ LIBVIRT_RESULT_LIB([NETCONTROL])
+])
Index: libvirt-6.2.0/src/interface/Makefile.inc.am
Index: libvirt-6.3.0/src/interface/Makefile.inc.am
===================================================================
--- libvirt-6.2.0.orig/src/interface/Makefile.inc.am
+++ libvirt-6.2.0/src/interface/Makefile.inc.am
--- libvirt-6.3.0.orig/src/interface/Makefile.inc.am
+++ libvirt-6.3.0/src/interface/Makefile.inc.am
@@ -6,6 +6,7 @@ INTERFACE_DRIVER_SOURCES = \
$(NULL)

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Wed May 6 01:40:32 UTC 2020 - James Fehlig <jfehlig@suse.com>
- Update to libvirt 6.3.0
- Many incremental improvements and bug fixes, see
https://libvirt.org/news.html
- Dropped patches:
88011ed2-libxl-driver-crash-fix.patch,
8e669b38-conf-add-event-channels.patch,
a93f55c5-libxl-add-event-channels.patch,
967f4eeb-xenconfig-event-channels.patch,
93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch,
b7d6648d-conf-add-e820-host.patch,
5749395b-libxl-e820-host.patch,
f3ef7daf-xenconfig-e820-host.patch,
34077c1b-tests-check-e820-host.patch,
fadbaa23-conf-add-passthrough.patch,
9529e007-libxl-passthrough.patch,
9cb8bc6f-xenconfig-refactor-features.patch,
b523e225-xenconfig-passthrough.patch,
bed32525-tests-check-passthrough.patch
-------------------------------------------------------------------
Tue Apr 21 17:45:36 UTC 2020 - James Fehlig <jfehlig@suse.com>

View File

@ -185,7 +185,7 @@
Name: libvirt
URL: http://libvirt.org/
Version: 6.2.0
Version: 6.3.0
Release: 0
Summary: Library providing a virtualization API
License: LGPL-2.1-or-later
@ -338,20 +338,6 @@ Source6: libvirtd-relocation-server.xml
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
Patch0: 88011ed2-libxl-driver-crash-fix.patch
Patch1: 8e669b38-conf-add-event-channels.patch
Patch2: a93f55c5-libxl-add-event-channels.patch
Patch3: 967f4eeb-xenconfig-event-channels.patch
Patch4: 93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch
Patch5: b7d6648d-conf-add-e820-host.patch
Patch6: 5749395b-libxl-e820-host.patch
Patch7: f3ef7daf-xenconfig-e820-host.patch
Patch8: 34077c1b-tests-check-e820-host.patch
Patch9: fadbaa23-conf-add-passthrough.patch
Patch10: 9529e007-libxl-passthrough.patch
Patch11: 9cb8bc6f-xenconfig-refactor-features.patch
Patch12: b523e225-xenconfig-passthrough.patch
Patch13: bed32525-tests-check-passthrough.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@ -887,20 +873,6 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1
@ -1151,12 +1123,6 @@ done
mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}
mkdir -p %{buildroot}/%{_sysconfdir}/%{name}/hooks
%find_lang %{name}
# Add a README to the libvirt package with a note about the empty
# file list
cat > %{buildroot}/%{_docdir}/%{name}/libvirt.README << 'EOF'
The libvirt package no longer contains any files. It exists now
only to fulfill its 'Provides' contract.
EOF
install -d -m 0755 %{buildroot}/%{_localstatedir}/lib/%{name}/dnsmasq/
install -d -m 0755 %{buildroot}/%{_datadir}/%{name}/networks/
cp %{buildroot}/%{_sysconfdir}/%{name}/qemu/networks/default.xml \
@ -1165,40 +1131,18 @@ rm -f %{buildroot}/%{_sysconfdir}/%{name}/qemu/networks/default.xml
rm -f %{buildroot}/%{_sysconfdir}/%{name}/qemu/networks/autostart/default.xml
# Strip auto-generated UUID - we need it generated per-install
sed -i -e "/<uuid>/d" %{buildroot}/%{_datadir}/%{name}/networks/default.xml
%if %{with_lxc}
cat > %{buildroot}/%{_docdir}/%{name}/libvirt-daemon-lxc.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing LXC.
EOF
%else
%if ! %{with_lxc}
rm -rf %{buildroot}/%{_sysconfdir}/%{name}/lxc.conf
rm -f %{buildroot}/%{_datadir}/augeas/lenses/libvirtd_lxc.aug
rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
rm -rf %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.lxc
%endif
%if %{with_qemu}
cat > %{buildroot}/%{_docdir}/%{name}/libvirt-daemon-qemu.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing QEMU/KVM.
EOF
%else
%if ! %{with_qemu}
rm -rf %{buildroot}/%{_sysconfdir}/%{name}/qemu.conf
rm -f %{buildroot}/%{_datadir}/augeas/lenses/libvirtd_qemu.aug
rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
rm -rf %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.qemu
%endif
%if %{with_vbox}
cat > %{buildroot}/%{_docdir}/%{name}/libvirt-daemon-vbox.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing VirtualBox.
EOF
%endif
%if %{with_libxl}
cat > %{buildroot}/%{_docdir}/%{name}/libvirt-daemon-xen.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing Xen.
EOF
%endif
%if ! %{with_libxl}
rm -f %{buildroot}/%{_sysconfdir}/%{name}/libxl.conf
rm -f %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.libxl
@ -1214,15 +1158,46 @@ rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
mkdir -p %{buildroot}/%{_fillupdir}
rm -f %{buildroot}/usr/lib/sysctl.d/60-libvirtd.conf
mv %{buildroot}/%{_sysconfdir}/sysconfig/libvirtd %{buildroot}%{_fillupdir}/sysconfig.libvirtd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtproxyd %{buildroot}/%{_fillupdir}/sysconfig.virtproxyd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtlogd %{buildroot}/%{_fillupdir}/sysconfig.virtlogd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtlockd %{buildroot}/%{_fillupdir}/sysconfig.virtlockd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtinterfaced %{buildroot}/%{_fillupdir}/sysconfig.virtinterfaced
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtnetworkd %{buildroot}/%{_fillupdir}/sysconfig.virtnetworkd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtnodedevd %{buildroot}/%{_fillupdir}/sysconfig.virtnodedevd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtnwfilterd %{buildroot}/%{_fillupdir}/sysconfig.virtnwfilterd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtsecretd %{buildroot}/%{_fillupdir}/sysconfig.virtsecretd
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtstoraged %{buildroot}/%{_fillupdir}/sysconfig.virtstoraged
mv %{buildroot}/%{_sysconfdir}/sysconfig/libvirt-guests %{buildroot}/%{_fillupdir}/sysconfig.libvirt-guests
# Provide rc symlink backward compatibility
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirtd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtproxyd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlogd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlockd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtinterfaced
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtnetworkd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtnodedevd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtnwfilterd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtsecretd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtstoraged
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirt-guests
%if %{with_qemu}
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtqemud %{buildroot}/%{_fillupdir}/sysconfig.virtqemud
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtqemud
%endif
%if %{with_lxc}
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtlxcd %{buildroot}/%{_fillupdir}/sysconfig.virtlxcd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlxcd
%endif
%if %{with_libxl}
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtxend %{buildroot}/%{_fillupdir}/sysconfig.virtxend
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtxend
%endif
%if %{with_vbox}
mv %{buildroot}/%{_sysconfdir}/sysconfig/virtvboxd %{buildroot}/%{_fillupdir}/sysconfig.virtvboxd
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtvboxd
%endif
# install firewall services for migration ports
mkdir -p %{buildroot}/%{_fwdefdir}
%if %{with_firewalld}
@ -1283,6 +1258,7 @@ fi
%service_add_post libvirtd.service libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tcp.socket libvirtd-tls.socket virtlockd.service virtlockd.socket virtlogd.service virtlogd.socket virtlockd-admin.socket virtlogd-admin.socket virtproxyd.service virtproxyd.socket virtproxyd-ro.socket virtproxyd-admin.socket virtproxyd-tcp.socket virtproxyd-tls.socket virt-guest-shutdown.target
%{fillup_only -n libvirtd}
%{fillup_only -n virtlockd}
%{fillup_only -n virtproxyd}
%{fillup_only -n virtlogd}
# The '--listen' option is incompatible with socket activation.
# We need to forcibly remove it from /etc/sysconfig/libvirtd.
@ -1485,7 +1461,6 @@ fi
%postun nss -p /sbin/ldconfig
%files
%doc %{_docdir}/%{name}/libvirt.README
%files daemon
%{_sbindir}/libvirtd
@ -1496,6 +1471,7 @@ fi
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/hooks
%{_fillupdir}/sysconfig.libvirtd
%{_fillupdir}/sysconfig.virtproxyd
%{_fillupdir}/sysconfig.virtlogd
%{_fillupdir}/sysconfig.virtlockd
%{_unitdir}/libvirtd.service
@ -1520,6 +1496,7 @@ fi
%{_sbindir}/rclibvirtd
%{_sbindir}/rcvirtlogd
%{_sbindir}/rcvirtlockd
%{_sbindir}/rcvirtproxyd
%config(noreplace) %{_sysconfdir}/%{name}/libvirtd.conf
%config(noreplace) %{_sysconfdir}/%{name}/virtproxyd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
@ -1600,6 +1577,7 @@ fi
%config %{_sysconfdir}/%{name}/nwfilter/*.xml
%files daemon-driver-interface
%{_fillupdir}/sysconfig.virtinterfaced
%config(noreplace) %{_sysconfdir}/%{name}/virtinterfaced.conf
%{_datadir}/augeas/lenses/virtinterfaced.aug
%{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
@ -1608,10 +1586,12 @@ fi
%{_unitdir}/virtinterfaced-ro.socket
%{_unitdir}/virtinterfaced-admin.socket
%{_sbindir}/virtinterfaced
%{_sbindir}/rcvirtinterfaced
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
%files daemon-driver-network
%{_fillupdir}/sysconfig.virtnetworkd
%config(noreplace) %{_sysconfdir}/%{name}/virtnetworkd.conf
%{_datadir}/augeas/lenses/virtnetworkd.aug
%{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
@ -1620,6 +1600,7 @@ fi
%{_unitdir}/virtnetworkd-ro.socket
%{_unitdir}/virtnetworkd-admin.socket
%{_sbindir}/virtnetworkd
%{_sbindir}/rcvirtnetworkd
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/qemu/
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/qemu/networks/
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/qemu/networks/autostart
@ -1634,6 +1615,7 @@ fi
%endif
%files daemon-driver-nodedev
%{_fillupdir}/sysconfig.virtnodedevd
%config(noreplace) %{_sysconfdir}/%{name}/virtnodedevd.conf
%{_datadir}/augeas/lenses/virtnodedevd.aug
%{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
@ -1642,10 +1624,12 @@ fi
%{_unitdir}/virtnodedevd-ro.socket
%{_unitdir}/virtnodedevd-admin.socket
%{_sbindir}/virtnodedevd
%{_sbindir}/rcvirtnodedevd
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
%files daemon-driver-nwfilter
%{_fillupdir}/sysconfig.virtnwfilterd
%config(noreplace) %{_sysconfdir}/%{name}/virtnwfilterd.conf
%{_datadir}/augeas/lenses/virtnwfilterd.aug
%{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
@ -1654,11 +1638,13 @@ fi
%{_unitdir}/virtnwfilterd-ro.socket
%{_unitdir}/virtnwfilterd-admin.socket
%{_sbindir}/virtnwfilterd
%{_sbindir}/rcvirtnwfilterd
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/nwfilter/
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
%files daemon-driver-secret
%{_fillupdir}/sysconfig.virtsecretd
%config(noreplace) %{_sysconfdir}/%{name}/virtsecretd.conf
%{_datadir}/augeas/lenses/virtsecretd.aug
%{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
@ -1667,12 +1653,14 @@ fi
%{_unitdir}/virtsecretd-ro.socket
%{_unitdir}/virtsecretd-admin.socket
%{_sbindir}/virtsecretd
%{_sbindir}/rcvirtsecretd
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
%files daemon-driver-storage
%files daemon-driver-storage-core
%{_fillupdir}/sysconfig.virtstoraged
%config(noreplace) %{_sysconfdir}/%{name}/virtstoraged.conf
%{_datadir}/augeas/lenses/virtstoraged.aug
%{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
@ -1681,6 +1669,7 @@ fi
%{_unitdir}/virtstoraged-ro.socket
%{_unitdir}/virtstoraged-admin.socket
%{_sbindir}/virtstoraged
%{_sbindir}/rcvirtstoraged
%attr(0755, root, root) %{_libdir}/%{name}/libvirt_parthelper
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
@ -1728,6 +1717,7 @@ fi
%if %{with_qemu}
%files daemon-driver-qemu
%{_fillupdir}/sysconfig.virtqemud
%config(noreplace) %{_sysconfdir}/%{name}/virtqemud.conf
%{_datadir}/augeas/lenses/virtqemud.aug
%{_datadir}/augeas/lenses/tests/test_virtqemud.aug
@ -1736,6 +1726,7 @@ fi
%{_unitdir}/virtqemud-ro.socket
%{_unitdir}/virtqemud-admin.socket
%{_sbindir}/virtqemud
%{_sbindir}/rcvirtqemud
%config(noreplace) %{_sysconfdir}/%{name}/qemu.conf
%config(noreplace) %{_sysconfdir}/%{name}/qemu-lockd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
@ -1757,6 +1748,7 @@ fi
%if %{with_lxc}
%files daemon-driver-lxc
%{_fillupdir}/sysconfig.virtlxcd
%config(noreplace) %{_sysconfdir}/%{name}/virtlxcd.conf
%{_datadir}/augeas/lenses/virtlxcd.aug
%{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
@ -1765,6 +1757,7 @@ fi
%{_unitdir}/virtlxcd-ro.socket
%{_unitdir}/virtlxcd-admin.socket
%{_sbindir}/virtlxcd
%{_sbindir}/rcvirtlxcd
%config(noreplace) %{_sysconfdir}/%{name}/lxc.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
%dir %attr(0700, root, root) %{_localstatedir}/lib/%{name}/lxc/
@ -1784,6 +1777,7 @@ fi
%if %{with_libxl}
%files daemon-driver-libxl
%{_fillupdir}/sysconfig.virtxend
%config(noreplace) %{_sysconfdir}/%{name}/virtxend.conf
%{_datadir}/augeas/lenses/virtxend.aug
%{_datadir}/augeas/lenses/tests/test_virtxend.aug
@ -1792,6 +1786,7 @@ fi
%{_unitdir}/virtxend-ro.socket
%{_unitdir}/virtxend-admin.socket
%{_sbindir}/virtxend
%{_sbindir}/rcvirtxend
%config(noreplace) %{_sysconfdir}/%{name}/libxl.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
%config(noreplace) %{_sysconfdir}/%{name}/libxl-lockd.conf
@ -1806,6 +1801,7 @@ fi
%if %{with_vbox}
%files daemon-driver-vbox
%{_fillupdir}/sysconfig.virtvboxd
%config(noreplace) %{_sysconfdir}/%{name}/virtvboxd.conf
%{_datadir}/augeas/lenses/virtvboxd.aug
%{_datadir}/augeas/lenses/tests/test_virtvboxd.aug
@ -1814,31 +1810,28 @@ fi
%{_unitdir}/virtvboxd-ro.socket
%{_unitdir}/virtvboxd-admin.socket
%{_sbindir}/virtvboxd
%{_sbindir}/rcvirtvboxd
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
%endif
%if %{with_qemu}
%files daemon-qemu
%doc %{_docdir}/%{name}/libvirt-daemon-qemu.README
%endif
%if %{with_lxc}
%files daemon-lxc
%doc %{_docdir}/%{name}/libvirt-daemon-lxc.README
%endif
%if %{with_libxl}
%files daemon-xen
%doc %{_docdir}/%{name}/libvirt-daemon-xen.README
%endif
%if %{with_vbox}
%files daemon-vbox
%doc %{_docdir}/%{name}/libvirt-daemon-vbox.README
%endif
%files client
@ -1925,23 +1918,12 @@ fi
%{_datadir}/%{name}/api/libvirt-lxc-api.xml
%files doc
%doc AUTHORS NEWS README README.md
%doc AUTHORS NEWS README README.rst
%license COPYING COPYING.LESSER
%dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/*.png
%doc %{_docdir}/%{name}/*.html
%doc %{_docdir}/%{name}/*.gif
%doc %{_docdir}/%{name}/*.css
%doc %{_docdir}/%{name}/html
%doc %{_docdir}/%{name}/internals
%doc %{_docdir}/%{name}/kbase
%doc %{_docdir}/%{name}/logos
%doc %{_docdir}/%{name}/fonts
%doc %{_docdir}/%{name}/js
%doc %{_docdir}/%{name}/manpages
%doc %{_docdir}/%{name}/*
%dir %{_datadir}/doc/%{name}
%dir %{_datadir}/doc/%{name}/examples
%doc %{_datadir}/doc/%{name}/examples/*
%doc %{_datadir}/doc/%{name}/*
%if %{with_sanlock}

View File

@ -8,10 +8,10 @@ Date: Mon Jun 23 15:51:20 2014 -0600
option, but domainReset can be implemented in the libxl driver by
forcibly destroying the domain and starting it again.
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
@@ -1371,6 +1371,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
}

View File

@ -3,10 +3,10 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
Index: libvirt-6.3.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
--- libvirt-6.3.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.3.0/src/libxl/libxl_conf.c
@@ -905,6 +905,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}

View File

@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
tools/virsh.pod | 8 ++++++++
6 files changed, 125 insertions(+), 6 deletions(-)
Index: libvirt-6.2.0/include/libvirt/libvirt-domain.h
Index: libvirt-6.3.0/include/libvirt/libvirt-domain.h
===================================================================
--- libvirt-6.2.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-6.2.0/include/libvirt/libvirt-domain.h
--- libvirt-6.3.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-6.3.0/include/libvirt/libvirt-domain.h
@@ -1065,6 +1065,31 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination"
@ -52,10 +52,10 @@ Index: libvirt-6.2.0/include/libvirt/libvirt-domain.h
/* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname,
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
@@ -6196,6 +6196,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL;
const char *uri = NULL;
@ -99,10 +99,10 @@ Index: libvirt-6.2.0/src/libxl/libxl_driver.c
goto cleanup;
}
Index: libvirt-6.2.0/src/libxl/libxl_migration.c
Index: libvirt-6.3.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-6.2.0.orig/src/libxl/libxl_migration.c
+++ libvirt-6.2.0/src/libxl/libxl_migration.c
--- libvirt-6.3.0.orig/src/libxl/libxl_migration.c
+++ libvirt-6.3.0/src/libxl/libxl_migration.c
@@ -345,18 +345,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
static int
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
@ -264,10 +264,10 @@ Index: libvirt-6.2.0/src/libxl/libxl_migration.c
virObjectLock(vm);
if (ret == 0) {
Index: libvirt-6.2.0/src/libxl/libxl_migration.h
Index: libvirt-6.3.0/src/libxl/libxl_migration.h
===================================================================
--- libvirt-6.2.0.orig/src/libxl/libxl_migration.h
+++ libvirt-6.2.0/src/libxl/libxl_migration.h
--- libvirt-6.3.0.orig/src/libxl/libxl_migration.h
+++ libvirt-6.3.0/src/libxl/libxl_migration.h
@@ -35,6 +35,10 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@ -312,11 +312,11 @@ Index: libvirt-6.2.0/src/libxl/libxl_migration.h
virDomainPtr
libxlDomainMigrationDstFinish(virConnectPtr dconn,
Index: libvirt-6.2.0/tools/virsh-domain.c
Index: libvirt-6.3.0/tools/virsh-domain.c
===================================================================
--- libvirt-6.2.0.orig/tools/virsh-domain.c
+++ libvirt-6.2.0/tools/virsh-domain.c
@@ -10716,6 +10716,22 @@ static const vshCmdOptDef opts_migrate[]
--- libvirt-6.3.0.orig/tools/virsh-domain.c
+++ libvirt-6.3.0/tools/virsh-domain.c
@@ -10722,6 +10722,22 @@ static const vshCmdOptDef opts_migrate[]
.type = VSH_OT_STRING,
.help = N_("override the destination host name used for TLS verification")
},
@ -339,7 +339,7 @@ Index: libvirt-6.2.0/tools/virsh-domain.c
{.name = NULL}
};
@@ -10738,6 +10754,7 @@ doMigrate(void *opaque)
@@ -10743,6 +10759,7 @@ doMigrate(void *opaque)
unsigned long long ullOpt = 0;
int rv;
virConnectPtr dconn = data->dconn;
@ -347,7 +347,7 @@ Index: libvirt-6.2.0/tools/virsh-domain.c
#ifndef WIN32
sigset_t sigmask, oldsigmask;
@@ -10860,6 +10877,27 @@ doMigrate(void *opaque)
@@ -10865,6 +10882,27 @@ doMigrate(void *opaque)
goto save_error;
}
@ -375,10 +375,10 @@ Index: libvirt-6.2.0/tools/virsh-domain.c
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
goto out;
if (opt) {
Index: libvirt-6.2.0/docs/manpages/virsh.rst
Index: libvirt-6.3.0/docs/manpages/virsh.rst
===================================================================
--- libvirt-6.2.0.orig/docs/manpages/virsh.rst
+++ libvirt-6.2.0/docs/manpages/virsh.rst
--- libvirt-6.3.0.orig/docs/manpages/virsh.rst
+++ libvirt-6.3.0/docs/manpages/virsh.rst
@@ -3093,6 +3093,8 @@ migrate
[--postcopy-bandwidth bandwidth]
[--parallel [--parallel-connections connections]]

View File

@ -7,10 +7,10 @@ and npiv.
For more details, see bsc#954872 and FATE#319810
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
Index: libvirt-6.3.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
--- libvirt-6.3.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.3.0/src/libxl/libxl_conf.c
@@ -905,6 +905,22 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}

View File

@ -13,10 +13,10 @@ device with the same name that is being created.
src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+)
Index: libvirt-6.2.0/src/lxc/lxc_controller.c
Index: libvirt-6.3.0/src/lxc/lxc_controller.c
===================================================================
--- libvirt-6.2.0.orig/src/lxc/lxc_controller.c
+++ libvirt-6.2.0/src/lxc/lxc_controller.c
--- libvirt-6.3.0.orig/src/lxc/lxc_controller.c
+++ libvirt-6.3.0/src/lxc/lxc_controller.c
@@ -2056,6 +2056,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1;
@ -25,10 +25,10 @@ Index: libvirt-6.2.0/src/lxc/lxc_controller.c
return ret;
}
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
@@ -67,6 +67,7 @@
#include "virtime.h"
#include "virtypedparam.h"
@ -37,7 +37,7 @@ Index: libvirt-6.2.0/src/lxc/lxc_driver.c
#include "virstring.h"
#include "viraccessapicheck.h"
#include "viraccessapichecklxc.h"
@@ -3551,6 +3552,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive
@@ -3552,6 +3553,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive
case VIR_DOMAIN_NET_TYPE_NETWORK:
case VIR_DOMAIN_NET_TYPE_ETHERNET:
ignore_value(virNetDevVethDelete(veth));
@ -45,7 +45,7 @@ Index: libvirt-6.2.0/src/lxc/lxc_driver.c
break;
case VIR_DOMAIN_NET_TYPE_DIRECT:
@@ -3991,6 +3993,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
@@ -3992,6 +3994,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup;
}
@ -53,10 +53,10 @@ Index: libvirt-6.2.0/src/lxc/lxc_driver.c
break;
/* It'd be nice to support this, but with macvlan
Index: libvirt-6.2.0/src/lxc/lxc_process.c
Index: libvirt-6.3.0/src/lxc/lxc_process.c
===================================================================
--- libvirt-6.2.0.orig/src/lxc/lxc_process.c
+++ libvirt-6.2.0/src/lxc/lxc_process.c
--- libvirt-6.3.0.orig/src/lxc/lxc_process.c
+++ libvirt-6.3.0/src/lxc/lxc_process.c
@@ -50,6 +50,7 @@
#include "virstring.h"
#include "virprocess.h"

View File

@ -17,11 +17,11 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
2 files changed, 8 insertions(+), 2 deletions(-)
Index: libvirt-6.2.0/src/network/bridge_driver.c
Index: libvirt-6.3.0/src/network/bridge_driver.c
===================================================================
--- libvirt-6.2.0.orig/src/network/bridge_driver.c
+++ libvirt-6.2.0/src/network/bridge_driver.c
@@ -1444,7 +1444,14 @@ networkDnsmasqConfContents(virNetworkObj
--- libvirt-6.3.0.orig/src/network/bridge_driver.c
+++ libvirt-6.3.0/src/network/bridge_driver.c
@@ -1476,7 +1476,14 @@ networkDnsmasqConfContents(virNetworkObj
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) {
virBufferAddLit(&configbuf, "dhcp-no-override\n");
@ -37,10 +37,10 @@ Index: libvirt-6.2.0/src/network/bridge_driver.c
}
if (ipdef->tftproot) {
Index: libvirt-6.2.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
Index: libvirt-6.3.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
===================================================================
--- libvirt-6.2.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-6.2.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
--- libvirt-6.3.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-6.3.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
@@ -10,7 +10,6 @@ bind-dynamic
interface=virbr1
dhcp-range=192.168.122.1,static

View File

@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
See bnc#894956
Index: libvirt-6.2.0/src/util/virarch.c
Index: libvirt-6.3.0/src/util/virarch.c
===================================================================
--- libvirt-6.2.0.orig/src/util/virarch.c
+++ libvirt-6.2.0/src/util/virarch.c
--- libvirt-6.3.0.orig/src/util/virarch.c
+++ libvirt-6.3.0/src/util/virarch.c
@@ -220,6 +220,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) {

View File

@ -1,11 +1,11 @@
Index: libvirt-6.2.0/src/security/apparmor/libvirt-qemu
Index: libvirt-6.3.0/src/security/apparmor/libvirt-qemu
===================================================================
--- libvirt-6.2.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.2.0/src/security/apparmor/libvirt-qemu
@@ -228,3 +228,6 @@
# required for sasl GSSAPI plugin
/etc/gss/mech.d/ r,
/etc/gss/mech.d/* r,
--- libvirt-6.3.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.3.0/src/security/apparmor/libvirt-qemu
@@ -233,3 +233,6 @@
# /sys/bus/nd/devices
/ r, # harmless on any lsb compliant system
/sys/bus/nd/devices/{,**/} r,
+
+ # Temporary screendump rule -- See bsc#904426
+ /var/cache/libvirt/qemu/qemu.screendump.* rw,

View File

@ -8,10 +8,10 @@ Subject: [PATCH] support managed pci devices in xen driver
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
Index: libvirt-6.2.0/src/libxl/xen_common.c
Index: libvirt-6.3.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
--- libvirt-6.3.0.orig/src/libxl/xen_common.c
+++ libvirt-6.3.0/src/libxl/xen_common.c
@@ -381,12 +381,19 @@ xenParsePCI(char *entry)
int busID;
int slotID;

View File

@ -8,10 +8,10 @@ It was also noticed that the per-domain profiles need a libnl rule
to squelch a denial when starting confined domains.
Found while investigating bsc#1058847
Index: libvirt-6.2.0/src/security/apparmor/libvirt-qemu
Index: libvirt-6.3.0/src/security/apparmor/libvirt-qemu
===================================================================
--- libvirt-6.2.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.2.0/src/security/apparmor/libvirt-qemu
--- libvirt-6.3.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.3.0/src/security/apparmor/libvirt-qemu
@@ -61,6 +61,7 @@
#/dev/fb* rw,
@ -20,10 +20,10 @@ Index: libvirt-6.2.0/src/security/apparmor/libvirt-qemu
@{HOME}/.pulse-cookie rwk,
owner /root/.pulse-cookie rwk,
owner /root/.pulse/ rw,
Index: libvirt-6.2.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
Index: libvirt-6.3.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
===================================================================
--- libvirt-6.2.0.orig/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ libvirt-6.2.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
--- libvirt-6.3.0.orig/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ libvirt-6.3.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
@@ -19,7 +19,7 @@ profile virt-aa-helper @libexecdir@/virt
# Used when internally running another command (namely apparmor_parser)
@{PROC}/@{pid}/fd/ r,

View File

@ -9,10 +9,10 @@ need backporting to anything older. The dependency on xen.git commit
c3999835df makes it hard to upstream this patch.
See bsc#1157490 and bsc#1167007 for more details
Index: libvirt-6.2.0/m4/virt-driver-libxl.m4
Index: libvirt-6.3.0/m4/virt-driver-libxl.m4
===================================================================
--- libvirt-6.2.0.orig/m4/virt-driver-libxl.m4
+++ libvirt-6.2.0/m4/virt-driver-libxl.m4
--- libvirt-6.3.0.orig/m4/virt-driver-libxl.m4
+++ libvirt-6.3.0/m4/virt-driver-libxl.m4
@@ -26,11 +26,11 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [
LIBXL_CFLAGS=""
LIBXL_FIRMWARE_DIR=""
@ -27,10 +27,10 @@ Index: libvirt-6.2.0/m4/virt-driver-libxl.m4
if test "x$with_libxl" = "xyes" ; then
LIBXL_FIRMWARE_DIR=$($PKG_CONFIG --variable xenfirmwaredir xenlight)
LIBXL_EXECBIN_DIR=$($PKG_CONFIG --variable libexec_bin xenlight)
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
Index: libvirt-6.3.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
--- libvirt-6.3.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.3.0/src/libxl/libxl_conf.c
@@ -1823,7 +1823,7 @@ libxlDriverConfigNew(void)
int
libxlDriverConfigInit(libxlDriverConfigPtr cfg)
@ -40,10 +40,10 @@ Index: libvirt-6.2.0/src/libxl/libxl_conf.c
if (virFileMakePath(cfg->logDir) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
Index: libvirt-6.2.0/src/libxl/libxl_domain.c
Index: libvirt-6.3.0/src/libxl/libxl_domain.c
===================================================================
--- libvirt-6.2.0.orig/src/libxl/libxl_domain.c
+++ libvirt-6.2.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
@@ -1020,8 +1020,8 @@ libxlDomainSetVcpuAffinities(libxlDriver
static int
libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config)
@ -64,10 +64,10 @@ Index: libvirt-6.2.0/src/libxl/libxl_domain.c
&aop_console_how);
libxl_domain_restore_params_dispose(&params);
}
Index: libvirt-6.2.0/tests/libxlmock.c
Index: libvirt-6.3.0/tests/libxlmock.c
===================================================================
--- libvirt-6.2.0.orig/tests/libxlmock.c
+++ libvirt-6.2.0/tests/libxlmock.c
--- libvirt-6.3.0.orig/tests/libxlmock.c
+++ libvirt-6.3.0/tests/libxlmock.c
@@ -67,7 +67,7 @@ VIR_MOCK_IMPL_RET_ARGS(libxl_get_version
VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory,
int, 0,

View File

@ -1,9 +1,9 @@
Adjust libvirt-guests service to conform to SUSE standards
Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
Index: libvirt-6.3.0/tools/libvirt-guests.sh.in
===================================================================
--- libvirt-6.2.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-6.2.0/tools/libvirt-guests.sh.in
--- libvirt-6.3.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-6.3.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@ -74,8 +74,8 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
# check if URI is reachable
test_connect()
@@ -108,7 +129,7 @@ list_guests() {
local list=$(run_virsh_c "$uri" list --uuid $persistent)
list=$(run_virsh_c "$uri" list --uuid $persistent)
if [ $? -ne 0 ]; then
- RETVAL=1
+ rc_failed 1
@ -83,15 +83,15 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
fi
@@ -134,7 +155,7 @@ guest_is_on() {
guest_running=false
id=$(run_virsh "$uri" domid "$uuid")
if [ $? -ne 0 ]; then
- RETVAL=1
+ rc_failed 1
return 1
fi
@@ -184,6 +205,13 @@ start() {
@@ -190,6 +211,13 @@ start() {
test_connect "$uri" || continue
@ -104,8 +104,8 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
+
eval_gettext "Resuming guests on \$uri URI..."; echo
for guest in $list; do
name=$(guest_name "$uri" "$guest")
@@ -405,7 +433,7 @@ shutdown_guests_parallel()
local name=$(guest_name "$uri" "$guest")
@@ -418,7 +446,7 @@ shutdown_guests_parallel()
timeout=$(($timeout - 1))
if [ $timeout -le 0 ]; then
eval_gettext "Timeout expired while shutting down domains"; echo
@ -114,7 +114,7 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
return
fi
else
@@ -434,7 +462,7 @@ stop() {
@@ -449,7 +477,7 @@ stop() {
if [ $SHUTDOWN_TIMEOUT -lt 0 ]; then
gettext "SHUTDOWN_TIMEOUT must be equal or greater than 0"
echo
@ -123,7 +123,7 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
return
fi
fi
@@ -482,14 +510,14 @@ stop() {
@@ -499,14 +527,14 @@ stop() {
if [ $? -ne 0 ]; then
eval_gettext "Failed to list persistent guests on \$uri"
echo
@ -140,7 +140,7 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
set +f
return
fi
@@ -548,14 +576,13 @@ gueststatus() {
@@ -567,14 +595,13 @@ gueststatus() {
rh_status() {
if [ -f "$LISTFILE" ]; then
gettext "stopped, with saved guests"; echo
@ -157,55 +157,49 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
fi
fi
}
@@ -600,4 +627,4 @@ case "$1" in
@@ -619,4 +646,4 @@ case "$1" in
usage
;;
esac
-exit $RETVAL
+rc_exit
Index: libvirt-6.2.0/tools/libvirt-guests.sysconf
Index: libvirt-6.3.0/tools/libvirt-guests.sysconf
===================================================================
--- libvirt-6.2.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-6.2.0/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
--- libvirt-6.3.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-6.3.0/tools/libvirt-guests.sysconf
@@ -1,9 +1,14 @@
+## Path: System/Virtualization/libvirt-guests
+
# Customizations for the libvirt-guests.service systemd unit
+## Type: string
+## Default: default
# URIs to check for running guests
# example: URIS='default xen:///system vbox+tcp://host/system lxc:///system'
-#URIS=default
+URIS=default
#URIS=default
+## Type: string
+## Default: start
# action taken on host boot
# - start all guests which were running on shutdown are started on boot
# regardless on their autostart settings
# - ignore libvirt-guests init script won't start any guest on boot, however,
# guests marked as autostart will still be automatically started by
@@ -12,10 +17,14 @@
# libvirtd
-#ON_BOOT=start
+ON_BOOT=start
#ON_BOOT=start
+## Type: integer
+## Default: 0
# Number of seconds to wait between each guest start. Set to 0 to allow
# parallel startup.
-#START_DELAY=0
+START_DELAY=0
#START_DELAY=0
+## Type: string
+## Default: suspend
# action taken on host shutdown
# - suspend all running guests are suspended using virsh managedsave
# - shutdown all running guests are asked to shutdown. Please be careful with
@@ -22,14 +32,18 @@
# which just needs a long time to shutdown. When setting
# ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a
@@ -26,12 +35,16 @@
# value suitable for your guests.
-#ON_SHUTDOWN=suspend
+ON_SHUTDOWN=suspend
#ON_SHUTDOWN=suspend
+## Type: integer
+## Default: 0
@ -213,15 +207,14 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sysconf
# "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be shutdown one
# after another. Number of guests on shutdown at any time will not exceed number
# set in this variable.
-#PARALLEL_SHUTDOWN=0
+PARALLEL_SHUTDOWN=0
#PARALLEL_SHUTDOWN=0
+## Type: integer
+## Default: 300
# Number of seconds we're willing to wait for a guest to shut down. If parallel
# shutdown is enabled, this timeout applies as a timeout for shutting down all
# guests on a single URI defined in the variable URIS. If this is 0, then there
@@ -37,14 +51,18 @@
@@ -39,14 +52,18 @@
# request). The default value is 300 seconds (5 minutes).
#SHUTDOWN_TIMEOUT=300
@ -230,8 +223,7 @@ Index: libvirt-6.2.0/tools/libvirt-guests.sysconf
# If non-zero, try to bypass the file system cache when saving and
# restoring guests, even though this may give slower operation for
# some file systems.
-#BYPASS_CACHE=0
+BYPASS_CACHE=0
#BYPASS_CACHE=0
+## Type: integer
+## Default: 0

View File

@ -3,10 +3,10 @@ Disable TLS by default
On SUSE distros, the default is for libvirtd to listen only on the
Unix Domain Socket. The libvirt client still provides remote access
via a SSH tunnel.
Index: libvirt-6.2.0/src/remote/remote_daemon_config.c
Index: libvirt-6.3.0/src/remote/remote_daemon_config.c
===================================================================
--- libvirt-6.2.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-6.2.0/src/remote/remote_daemon_config.c
--- libvirt-6.3.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-6.3.0/src/remote/remote_daemon_config.c
@@ -99,7 +99,7 @@ daemonConfigNew(bool privileged G_GNUC_U
#ifdef WITH_IP
@ -16,10 +16,10 @@ Index: libvirt-6.2.0/src/remote/remote_daemon_config.c
# else /* ! LIBVIRTD */
data->listen_tls = 0; /* Always honoured, --listen doesn't exist. */
# endif /* ! LIBVIRTD */
Index: libvirt-6.2.0/src/remote/libvirtd.conf.in
Index: libvirt-6.3.0/src/remote/libvirtd.conf.in
===================================================================
--- libvirt-6.2.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-6.2.0/src/remote/libvirtd.conf.in
--- libvirt-6.3.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-6.3.0/src/remote/libvirtd.conf.in
@@ -17,8 +17,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.

View File

@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
Index: libvirt-6.2.0/src/remote/libvirtd.sysconf
Index: libvirt-6.3.0/src/remote/libvirtd.sysconf
===================================================================
--- libvirt-6.2.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-6.2.0/src/remote/libvirtd.sysconf
--- libvirt-6.3.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-6.3.0/src/remote/libvirtd.sysconf
@@ -1,5 +1,9 @@
+## Path: System/Virtualization/libvirt
# Customizations for the libvirtd.service systemd unit
@ -14,15 +14,10 @@ Index: libvirt-6.2.0/src/remote/libvirtd.sysconf
# Default behaviour is for libvirtd.service to start on boot
# so that VM autostart can be performed. We then want it to
# shutdown again if nothing was started and rely on systemd
@@ -11,9 +15,13 @@ LIBVIRTD_ARGS="--timeout 120"
@@ -11,6 +15,8 @@ LIBVIRTD_ARGS="--timeout 120"
# can be used to listen on TCP/TLS sockets
#LIBVIRTD_ARGS="--listen"
+## Type: string
+## Default: none
# Override Kerberos service keytab for SASL/GSSAPI
#KRB5_KTNAME=/etc/libvirt/krb5.tab
+## Type: string
+## Default: none
# Override the QEMU/SDL default audio driver probing when

View File

@ -6,10 +6,10 @@ autoballooning. This patch changes libvirt to also disable autoballooning
by default. It can only be enabled with the 'autoballoon' setting in
libxl.conf. See jsc#SLE-3059 for more details.
Index: libvirt-6.2.0/src/libxl/libxl.conf
Index: libvirt-6.3.0/src/libxl/libxl.conf
===================================================================
--- libvirt-6.2.0.orig/src/libxl/libxl.conf
+++ libvirt-6.2.0/src/libxl/libxl.conf
--- libvirt-6.3.0.orig/src/libxl/libxl.conf
+++ libvirt-6.3.0/src/libxl/libxl.conf
@@ -4,12 +4,11 @@
# Enable autoballooning of domain0
@ -27,10 +27,10 @@ Index: libvirt-6.2.0/src/libxl/libxl.conf
# In order to prevent accidentally starting two domains that
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
Index: libvirt-6.3.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
--- libvirt-6.3.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.3.0/src/libxl/libxl_conf.c
@@ -1737,15 +1737,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
/*
* Get domain0 autoballoon configuration. Honor user-specified

View File

@ -1,9 +1,9 @@
Adjust paths of OVMF firmwares on SUSE distros
Index: libvirt-6.2.0/src/qemu/qemu.conf
Index: libvirt-6.3.0/src/qemu/qemu.conf
===================================================================
--- libvirt-6.2.0.orig/src/qemu/qemu.conf
+++ libvirt-6.2.0/src/qemu/qemu.conf
--- libvirt-6.3.0.orig/src/qemu/qemu.conf
+++ libvirt-6.3.0/src/qemu/qemu.conf
@@ -788,10 +788,9 @@
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme.
@ -18,11 +18,11 @@ Index: libvirt-6.2.0/src/qemu/qemu.conf
#]
# The backend to use for handling stdout/stderr output from
Index: libvirt-6.2.0/src/qemu/qemu_conf.c
Index: libvirt-6.3.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-6.2.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.2.0/src/qemu/qemu_conf.c
@@ -95,10 +95,9 @@ qemuDriverUnlock(virQEMUDriverPtr driver
--- libvirt-6.3.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.3.0/src/qemu/qemu_conf.c
@@ -96,10 +96,9 @@ qemuDriverUnlock(virQEMUDriverPtr driver
#ifndef DEFAULT_LOADER_NVRAM
# define DEFAULT_LOADER_NVRAM \
@ -36,10 +36,10 @@ Index: libvirt-6.2.0/src/qemu/qemu_conf.c
#endif
Index: libvirt-6.2.0/src/security/virt-aa-helper.c
Index: libvirt-6.3.0/src/security/virt-aa-helper.c
===================================================================
--- libvirt-6.2.0.orig/src/security/virt-aa-helper.c
+++ libvirt-6.2.0/src/security/virt-aa-helper.c
--- libvirt-6.3.0.orig/src/security/virt-aa-helper.c
+++ libvirt-6.3.0/src/security/virt-aa-helper.c
@@ -479,7 +479,8 @@ valid_path(const char *path, const bool
"/usr/share/ovmf/", /* for OVMF images */
"/usr/share/AAVMF/", /* for AAVMF images */

View File

@ -7,10 +7,10 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch,
etc.), but for now they are all lumped together in this
single patch.
Index: libvirt-6.2.0/src/qemu/qemu.conf
Index: libvirt-6.3.0/src/qemu/qemu.conf
===================================================================
--- libvirt-6.2.0.orig/src/qemu/qemu.conf
+++ libvirt-6.2.0/src/qemu/qemu.conf
--- libvirt-6.3.0.orig/src/qemu/qemu.conf
+++ libvirt-6.3.0/src/qemu/qemu.conf
@@ -420,10 +420,19 @@
# isolation, but it cannot appear in a list of drivers.
#
@ -60,10 +60,10 @@ Index: libvirt-6.2.0/src/qemu/qemu.conf
#
#lock_manager = "lockd"
Index: libvirt-6.2.0/src/qemu/qemu_conf.c
Index: libvirt-6.3.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-6.2.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.2.0/src/qemu/qemu_conf.c
--- libvirt-6.3.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.3.0/src/qemu/qemu_conf.c
@@ -266,7 +266,7 @@ virQEMUDriverConfigPtr virQEMUDriverConf
cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER);
cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON);

View File

@ -1,14 +1,14 @@
Adjust virtlockd sysconfig file to conform to SUSE standards
Index: libvirt-6.2.0/src/locking/virtlockd.sysconf
Index: libvirt-6.3.0/src/locking/virtlockd.sysconf
===================================================================
--- libvirt-6.2.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-6.2.0/src/locking/virtlockd.sysconf
--- libvirt-6.3.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-6.3.0/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
+## Type: string
+## Default: ""
#
# Pass extra arguments to virtlockd
#VIRTLOCKD_ARGS=
# Customizations for the virtlockd.service systemd unit
VIRTLOCKD_ARGS=""

View File

@ -1,14 +1,14 @@
Adjust virtlogd sysconfig file to conform to SUSE standards
Index: libvirt-6.2.0/src/logging/virtlogd.sysconf
Index: libvirt-6.3.0/src/logging/virtlogd.sysconf
===================================================================
--- libvirt-6.2.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-6.2.0/src/logging/virtlogd.sysconf
--- libvirt-6.3.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-6.3.0/src/logging/virtlogd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlogd
+
+## Type: string
+## Default: ""
#
# Pass extra arguments to virtlogd
#VIRTLOGD_ARGS=
# Customizations for the virtlogd.service systemd unit
VIRTLOGD_ARGS=""

View File

@ -5,10 +5,10 @@ upstream support for firmware autoselection in the xen driver. Sadly, the
upstream efforts to improve firmware handling in the qemu driver broke
the firmware handling in the xen driver.
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
Index: libvirt-6.3.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
--- libvirt-6.3.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.3.0/src/libxl/libxl_conf.c
@@ -1777,6 +1777,15 @@ libxlDriverConfigNew(void)
cfg->autoDumpDir = g_strdup(LIBXL_DUMP_DIR);
cfg->channelDir = g_strdup(LIBXL_CHANNEL_DIR);

View File

@ -1,7 +1,7 @@
Index: libvirt-6.2.0/tools/Makefile.am
Index: libvirt-6.3.0/tools/Makefile.am
===================================================================
--- libvirt-6.2.0.orig/tools/Makefile.am
+++ libvirt-6.2.0/tools/Makefile.am
--- libvirt-6.3.0.orig/tools/Makefile.am
+++ libvirt-6.3.0/tools/Makefile.am
@@ -70,7 +70,7 @@ MAINTAINERCLEANFILES =
confdir = $(sysconfdir)/libvirt
conf_DATA =
@ -11,10 +11,10 @@ Index: libvirt-6.2.0/tools/Makefile.am
bin_PROGRAMS = virsh virt-admin
libexec_SCRIPTS = libvirt-guests.sh
Index: libvirt-6.2.0/tools/virt-create-rootfs
Index: libvirt-6.3.0/tools/virt-create-rootfs
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tools/virt-create-rootfs
+++ libvirt-6.3.0/tools/virt-create-rootfs
@@ -0,0 +1,231 @@
+#!/bin/sh
+set -e
@ -247,11 +247,11 @@ Index: libvirt-6.2.0/tools/virt-create-rootfs
+ echo "pts/0" >> "$ROOT/etc/securetty"
+ chroot "$ROOT" /usr/bin/passwd
+fi
Index: libvirt-6.2.0/docs/Makefile.am
Index: libvirt-6.3.0/docs/Makefile.am
===================================================================
--- libvirt-6.2.0.orig/docs/Makefile.am
+++ libvirt-6.2.0/docs/Makefile.am
@@ -209,6 +209,7 @@ manpages1_rst = \
--- libvirt-6.3.0.orig/docs/Makefile.am
+++ libvirt-6.3.0/docs/Makefile.am
@@ -215,6 +215,7 @@ manpages1_rst = \
manpages/virt-xml-validate.rst \
manpages/virt-admin.rst \
manpages/virsh.rst \
@ -259,10 +259,10 @@ Index: libvirt-6.2.0/docs/Makefile.am
$(NULL)
manpages7_rst = \
$(KEYCODES:%=manpages/virkeycode-%.rst) \
Index: libvirt-6.2.0/docs/manpages/virt-create-rootfs.rst
Index: libvirt-6.3.0/docs/manpages/virt-create-rootfs.rst
===================================================================
--- /dev/null
+++ libvirt-6.2.0/docs/manpages/virt-create-rootfs.rst
+++ libvirt-6.3.0/docs/manpages/virt-create-rootfs.rst
@@ -0,0 +1,88 @@
+==================
+virt-create-rootfs