Hello community,
here is the log from the commit of package libvirt for openSUSE:Factory checked in at 2019-03-19 11:08:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
and /work/SRC/openSUSE:Factory/.libvirt.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt"
Tue Mar 19 11:08:46 2019 rev:276 rq:685486 version:5.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes 2019-03-12 09:48:53.503592158 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt.new.28833/libvirt.changes 2019-03-19 11:08:49.130088428 +0100
@@ -1,0 +2,45 @@
+Fri Mar 15 23:21:06 UTC 2019 - James Fehlig
+
+- supportconfig: collect rotated logs in /var/log/libvirt/*
+ Modified libvirt-supportconfig
+ bsc#1124667
+
+-------------------------------------------------------------------
+Wed Mar 13 23:09:27 UTC 2019 - James Fehlig
+
+- hook: encode incoming XML to UTF-8 before passing to lxml etree
+ fromstring method
+ Modifed suse-qemu-domain-hook.py
+ boo#1123642
+
+-------------------------------------------------------------------
+Wed Mar 13 21:09:58 UTC 2019 - James Fehlig
+
+- libxl: change autoballooning default to disabled
+ suse-libxl-disable-autoballoon.patch
+ jsc#SLE-3059
+
+-------------------------------------------------------------------
+Wed Mar 13 18:59:43 UTC 2019 - James Fehlig
+
+- conf: add new 'xenbus' controller type
+ 09eb1ae0-conf-add-xenbus-controller.patch
+- libxl: support Xen's max_grant_frames setting with maxGrantFrames
+ attribute on the xenbus controller
+ fb059757-libxl-add-xenbus-controller.patch,
+ ec5a1191-libxl-support-max-grant-frames.patch,
+ 5a64c202-xenconfig-support-max-grant-frames.patch
+ bsc#1126325
+
+-------------------------------------------------------------------
+Wed Mar 13 18:57:13 UTC 2019 - James Fehlig
+
+- Replace patches with upstream variants
+ Old:
+ 0001-apparmor-Check-libvirtd-profile-status-by-name.patch,
+ 0001-qemu-Fix-query-cpus-fast-target-architecture-detecti.patch
+ New:
+ 411cdaf8-apparmor-check-profile-name.patch,
+ 696239ba-qemu-fix-query-cpus-fast.patch
+
+-------------------------------------------------------------------
Old:
----
0001-apparmor-Check-libvirtd-profile-status-by-name.patch
0001-qemu-Fix-query-cpus-fast-target-architecture-detecti.patch
New:
----
09eb1ae0-conf-add-xenbus-controller.patch
411cdaf8-apparmor-check-profile-name.patch
5a64c202-xenconfig-support-max-grant-frames.patch
696239ba-qemu-fix-query-cpus-fast.patch
ec5a1191-libxl-support-max-grant-frames.patch
fb059757-libxl-add-xenbus-controller.patch
suse-libxl-disable-autoballoon.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.DeiVW3/_old 2019-03-19 11:08:52.798087556 +0100
+++ /var/tmp/diff_new_pack.DeiVW3/_new 2019-03-19 11:08:52.798087556 +0100
@@ -335,11 +335,15 @@
# Upstream patches
Patch0: 4ec3cf9a-apparmor-rules.patch
Patch1: f38ef0fa-no-RDMA-check.patch
+Patch2: 411cdaf8-apparmor-check-profile-name.patch
+Patch3: 696239ba-qemu-fix-query-cpus-fast.patch
+Patch4: 09eb1ae0-conf-add-xenbus-controller.patch
+Patch5: fb059757-libxl-add-xenbus-controller.patch
+Patch6: ec5a1191-libxl-support-max-grant-frames.patch
+Patch7: 5a64c202-xenconfig-support-max-grant-frames.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
-Patch102: 0001-apparmor-Check-libvirtd-profile-status-by-name.patch
-Patch103: 0001-qemu-Fix-query-cpus-fast-target-architecture-detecti.patch
# Need to go upstream
Patch150: xen-pv-cdrom.patch
Patch151: blockcopy-check-dst-identical-device.patch
@@ -367,6 +371,7 @@
Patch213: qemu-apparmor-screenshot.patch
Patch214: libvirt-suse-netcontrol.patch
Patch215: lxc-wait-after-eth-del.patch
+Patch216: suse-libxl-disable-autoballoon.patch
# SLES-Only patches
%if ! 0%{?is_opensuse}
Patch400: virt-create-rootfs.patch
@@ -872,10 +877,14 @@
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%patch100 -p1
%patch101 -p1
-%patch102 -p1
-%patch103 -p1
%patch150 -p1
%patch151 -p1
%patch152 -p1
@@ -901,6 +910,7 @@
%patch213 -p1
%patch214 -p1
%patch215 -p1
+%patch216 -p1
%if ! 0%{?is_opensuse}
%patch400 -p1
%endif
++++++ 09eb1ae0-conf-add-xenbus-controller.patch ++++++
commit 09eb1ae0ec7e592133eb98f4a0fe2f6daa5ba2d9
Author: Jim Fehlig
Date: Wed Mar 6 15:59:29 2019 -0700
conf: Add a new 'xenbus' controller type
xenbus is virtual controller (akin to virtio controllers) for Xen
paravirtual devices. Although all Xen VMs have a xenbus, it has
never been modeled in libvirt, or in Xen native VM config format
for that matter.
Recently there have been requests to support Xen's max_grant_frames
setting in libvirt. max_grant_frames is best modeled as an attribute
of xenbus. It describes the maximum IO buffer space (or DMA space)
available in xenbus for use by connected paravirtual devices. This
patch introduces a new xenbus controller type that includes a
maxGrantFrames attribute.
Signed-off-by: Jim Fehlig
Reviewed-by: Daniel P. Berrangé
Index: libvirt-5.1.0/docs/formatdomain.html.in
===================================================================
--- libvirt-5.1.0.orig/docs/formatdomain.html.in
+++ libvirt-5.1.0/docs/formatdomain.html.in
@@ -4108,6 +4108,7 @@
<driver iothread='4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
</controller>
+ <controller type='xenbus' maxGrantFrames='64'/>
...
</devices>
...</pre>
@@ -4155,6 +4156,11 @@
<dd><span class="since">Since 3.10.0</span> for the vbox driver, the
<code>ide</code> controller has an optional attribute
<code>model</code>, which is one of "piix3", "piix4" or "ich6".</dd>
+ <dt><code>xenbus</code></dt>
+ <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>
</dl>
<p>
Index: libvirt-5.1.0/docs/schemas/domaincommon.rng
===================================================================
--- libvirt-5.1.0.orig/docs/schemas/domaincommon.rng
+++ libvirt-5.1.0/docs/schemas/domaincommon.rng
@@ -2315,6 +2315,17 @@
</attribute>
</optional>
</group>
+ <!-- xenbus has an optional attribute "maxGrantFrames" -->
+ <group>
+ <attribute name="type">
+ <value>xenbus</value>
+ </attribute>
+ <optional>
+ <attribute name="maxGrantFrames">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </optional>
+ </group>
</choice>
<optional>
<element name="driver">
Index: libvirt-5.1.0/src/conf/domain_conf.c
===================================================================
--- libvirt-5.1.0.orig/src/conf/domain_conf.c
+++ libvirt-5.1.0/src/conf/domain_conf.c
@@ -347,6 +347,7 @@ VIR_ENUM_IMPL(virDomainController, VIR_D
"ccid",
"usb",
"pci",
+ "xenbus",
);
VIR_ENUM_IMPL(virDomainControllerModelPCI, VIR_DOMAIN_CONTROLLER_MODEL_PCI_LAST,
@@ -2041,6 +2042,9 @@ virDomainControllerDefNew(virDomainContr
def->opts.pciopts.targetIndex = -1;
def->opts.pciopts.numaNode = -1;
break;
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
+ def->opts.xenbusopts.maxGrantFrames = -1;
+ break;
case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
@@ -10791,6 +10795,20 @@ virDomainControllerDefParseXML(virDomain
def->opts.pciopts.numaNode = numaNode;
}
break;
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: {
+ VIR_AUTOFREE(char *) gntframes = virXMLPropString(node, "maxGrantFrames");
+
+ if (gntframes) {
+ int r = virStrToLong_i(gntframes, NULL, 10,
+ &def->opts.xenbusopts.maxGrantFrames);
+ if (r != 0 || def->opts.xenbusopts.maxGrantFrames < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Invalid maxGrantFrames: %s"), gntframes);
+ goto error;
+ }
+ }
+ break;
+ }
default:
break;
@@ -24752,6 +24770,13 @@ virDomainControllerDefFormat(virBufferPt
}
break;
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
+ if (def->opts.xenbusopts.maxGrantFrames != -1) {
+ virBufferAsprintf(buf, " maxGrantFrames='%d'",
+ def->opts.xenbusopts.maxGrantFrames);
+ }
+ break;
+
default:
break;
}
Index: libvirt-5.1.0/src/conf/domain_conf.h
===================================================================
--- libvirt-5.1.0.orig/src/conf/domain_conf.h
+++ libvirt-5.1.0/src/conf/domain_conf.h
@@ -687,6 +687,7 @@ typedef enum {
VIR_DOMAIN_CONTROLLER_TYPE_CCID,
VIR_DOMAIN_CONTROLLER_TYPE_USB,
VIR_DOMAIN_CONTROLLER_TYPE_PCI,
+ VIR_DOMAIN_CONTROLLER_TYPE_XENBUS,
VIR_DOMAIN_CONTROLLER_TYPE_LAST
} virDomainControllerType;
@@ -819,6 +820,12 @@ struct _virDomainUSBControllerOpts {
int ports; /* -1 == undef */
};
+typedef struct _virDomainXenbusControllerOpts virDomainXenbusControllerOpts;
+typedef virDomainXenbusControllerOpts *virDomainXenbusControllerOptsPtr;
+struct _virDomainXenbusControllerOpts {
+ int maxGrantFrames; /* -1 == undef */
+};
+
/* Stores the virtual disk controller configuration */
struct _virDomainControllerDef {
int type;
@@ -833,6 +840,7 @@ struct _virDomainControllerDef {
virDomainVirtioSerialOpts vioserial;
virDomainPCIControllerOpts pciopts;
virDomainUSBControllerOpts usbopts;
+ virDomainXenbusControllerOpts xenbusopts;
} opts;
virDomainDeviceInfo info;
virDomainVirtioOptionsPtr virtio;
Index: libvirt-5.1.0/src/qemu/qemu_command.c
===================================================================
--- libvirt-5.1.0.orig/src/qemu/qemu_command.c
+++ libvirt-5.1.0/src/qemu/qemu_command.c
@@ -3024,6 +3024,7 @@ qemuBuildControllerDevStr(const virDomai
case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unsupported controller type: %s"),
Index: libvirt-5.1.0/src/qemu/qemu_domain.c
===================================================================
--- libvirt-5.1.0.orig/src/qemu/qemu_domain.c
+++ libvirt-5.1.0/src/qemu/qemu_domain.c
@@ -5841,6 +5841,7 @@ qemuDomainDeviceDefValidateController(co
case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL:
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
case VIR_DOMAIN_CONTROLLER_TYPE_USB:
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
break;
}
@@ -6459,6 +6460,7 @@ qemuDomainControllerDefPostParse(virDoma
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
break;
}
Index: libvirt-5.1.0/src/qemu/qemu_domain_address.c
===================================================================
--- libvirt-5.1.0.orig/src/qemu/qemu_domain_address.c
+++ libvirt-5.1.0/src/qemu/qemu_domain_address.c
@@ -669,6 +669,7 @@ qemuDomainDeviceCalculatePCIConnectFlags
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
+ case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
/* should be 0 */
return pciFlags;
++++++ 411cdaf8-apparmor-check-profile-name.patch ++++++
commit 411cdaf884f35b8dac2be17fcc24e052e11b7d60
Author: Jim Fehlig
Date: Fri Mar 1 14:34:17 2019 -0700
apparmor: Check libvirtd profile status by name
Commit a3ab6d42 changed the libvirtd profile to a named profile,
breaking the apparmor driver's ability to detect if the profile is
active. When the apparmor driver loads it checks the status of the
libvirtd profile using the full binary path, which fails since the
profile is now referenced by name. If the apparmor driver is
explicitly requested in /etc/libvirt/qemu.conf, then libvirtd fails
to load too.
Instead of only checking the profile status by full binary path,
also check by profile name. The full path check is retained in case
users have a customized libvirtd profile with full path.
Signed-off-by: Jim Fehlig
Acked-by: Jamie Strandboge
Index: libvirt-5.1.0/src/security/security_apparmor.c
===================================================================
--- libvirt-5.1.0.orig/src/security/security_apparmor.c
+++ libvirt-5.1.0/src/security/security_apparmor.c
@@ -257,10 +257,16 @@ use_apparmor(void)
if (access(APPARMOR_PROFILES_PATH, R_OK) != 0)
goto cleanup;
+ /* First check profile status using full binary path. If that fails
+ * check using profile name.
+ */
rc = profile_status(libvirt_daemon, 1);
- /* Error or unconfined should all result in -1*/
- if (rc < 0)
- rc = -1;
+ if (rc < 0) {
+ rc = profile_status("libvirtd", 1);
+ /* Error or unconfined should all result in -1*/
+ if (rc < 0)
+ rc = -1;
+ }
cleanup:
VIR_FREE(libvirt_daemon);
++++++ 5a64c202-xenconfig-support-max-grant-frames.patch ++++++
commit 5a64c202ccdac82f5868e638e5619e2b48c0444b
Author: Jim Fehlig
Date: Fri Mar 8 11:51:57 2019 -0700
xenconfig: Add support for max_grant_frames
Add support in the domXML<->native config converter for
max_grant_frames. Include a test for the conversion.
Signed-off-by: Jim Fehlig
Reviewed-by: Daniel P. Berrangé
Index: libvirt-5.1.0/src/xenconfig/xen_xl.c
===================================================================
--- libvirt-5.1.0.orig/src/xenconfig/xen_xl.c
+++ libvirt-5.1.0/src/xenconfig/xen_xl.c
@@ -607,6 +607,34 @@ xenParseXLVnuma(virConfPtr conf,
}
#endif
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+static int
+xenParseXLGntLimits(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;
+
+ ctlr_idx = virDomainControllerFindByType(def, VIR_DOMAIN_CONTROLLER_TYPE_XENBUS);
+ if (ctlr_idx == -1)
+ xenbus_ctlr = virDomainDefAddController(def, VIR_DOMAIN_CONTROLLER_TYPE_XENBUS, -1, -1);
+ else
+ xenbus_ctlr = def->controllers[ctlr_idx];
+
+ if (xenbus_ctlr == NULL)
+ return -1;
+
+ xenbus_ctlr->opts.xenbusopts.maxGrantFrames = max_gntframes;
+ return 0;
+}
+#endif
+
static int
xenParseXLDiskSrc(virDomainDiskDefPtr disk, char *srcstr)
{
@@ -1165,6 +1193,11 @@ xenParseXL(virConfPtr conf,
goto cleanup;
#endif
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ if (xenParseXLGntLimits(conf, def) < 0)
+ goto cleanup;
+#endif
+
if (xenParseXLCPUID(conf, def) < 0)
goto cleanup;
@@ -1517,6 +1550,24 @@ xenFormatXLDomainVnuma(virConfPtr conf,
}
#endif
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+static int
+xenFormatXLGntLimits(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;
+ }
+ }
+ return 0;
+}
+#endif
+
static char *
xenFormatXLDiskSrcNet(virStorageSourcePtr src)
{
@@ -2166,6 +2217,11 @@ xenFormatXL(virDomainDefPtr def, virConn
goto cleanup;
#endif
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ if (xenFormatXLGntLimits(conf, def) < 0)
+ goto cleanup;
+#endif
+
if (xenFormatXLDomainDisks(conf, def) < 0)
goto cleanup;
Index: libvirt-5.1.0/tests/xlconfigdata/test-max-gntframes.cfg
===================================================================
--- /dev/null
+++ libvirt-5.1.0/tests/xlconfigdata/test-max-gntframes.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_grant_frames = 64
+disk = [ "format=qcow2,vdev=xvda,access=rw,backendtype=qdisk,target=/var/lib/xen/images/debian/disk.qcow2" ]
Index: libvirt-5.1.0/tests/xlconfigdata/test-max-gntframes.xml
===================================================================
--- /dev/null
+++ libvirt-5.1.0/tests/xlconfigdata/test-max-gntframes.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'/>
+ preserve
+ restart
+ preserve
+ <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' maxGrantFrames='64'/>
+ <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-5.1.0/tests/xlconfigtest.c
===================================================================
--- libvirt-5.1.0.orig/tests/xlconfigtest.c
+++ libvirt-5.1.0/tests/xlconfigtest.c
@@ -299,6 +299,10 @@ mymain(void)
DO_TEST_FORMAT("fullvirt-direct-kernel-boot-extra", false);
DO_TEST_FORMAT("fullvirt-direct-kernel-boot-bogus-extra", false);
#endif
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ DO_TEST("max-gntframes");
+#endif
+
DO_TEST("vif-typename");
DO_TEST("vif-multi-ip");
DO_TEST("usb");
++++++ 696239ba-qemu-fix-query-cpus-fast.patch ++++++
commit 696239ba6f83c65ded476e87d3ba77b424e16fd1
Author: Viktor Mihajlovski
Date: Fri Mar 1 11:29:51 2019 +0100
qemu: Fix query-cpus-fast target architecture detection
Since qemu 2.13 reports the target architecture in a property called
'target' additionally to the property 'arch', that has been used in
qemu 2.12 in the response data of 'query-cpus-fast'.
Libvirts monitor code prefers the 'target' property over 'arch'.
At least for s390(x), target is reported as 's390x' while arch is 's390'.
In a later step a comparison is performed against 's390' which fails for
qemu 2.13 and later.
In consequence the architecture specific data for s390 won't be extracted
from the returned data, leading to incorrect values being reported by
virsh domstats --vcpu.
Changing to check explicitly for 's390' and 's390x'.
Signed-off-by: Viktor Mihajlovski
Reviewed-by: Bjoern Walk
Reviewed-by: Boris Fiuczynski
Index: libvirt-5.1.0/src/qemu/qemu_monitor_json.c
===================================================================
--- libvirt-5.1.0.orig/src/qemu/qemu_monitor_json.c
+++ libvirt-5.1.0/src/qemu/qemu_monitor_json.c
@@ -1772,7 +1772,7 @@ qemuMonitorJSONExtractCPUInfo(virJSONVal
goto cleanup;
/* process optional architecture-specific data */
- if (STREQ_NULLABLE(arch, "s390"))
+ if (STREQ_NULLABLE(arch, "s390") || STREQ_NULLABLE(arch, "s390x"))
qemuMonitorJSONExtractCPUS390Info(entry, cpus + i);
}
++++++ ec5a1191-libxl-support-max-grant-frames.patch ++++++
commit ec5a11910d12f80e26f5d9905840c109e74939db
Author: Jim Fehlig
Date: Thu Mar 7 15:16:09 2019 -0700
libxl: Add support for max_grant_frames
Add support for setting max_grant_frames in libxl domain config
object and include a test to check that it is properly converted
from XML to libxl domain config.
Signed-off-by: Jim Fehlig
Reviewed-by: Daniel P. Berrangé
Index: libvirt-5.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-5.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-5.1.0/src/libxl/libxl_conf.c
@@ -393,6 +393,15 @@ libxlMakeDomBuildInfo(virDomainDefPtr de
def->mem.cur_balloon = VIR_ROUND_UP(def->mem.cur_balloon, 1024);
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;
+ }
+#endif
+
if (hvm || pvh) {
if (caps &&
def->cpu && def->cpu->mode == (VIR_CPU_MODE_HOST_PASSTHROUGH)) {
Index: libvirt-5.1.0/tests/libxlxml2domconfigdata/max-gntframes-hvm.json
===================================================================
--- /dev/null
+++ libvirt-5.1.0/tests/libxlxml2domconfigdata/max-gntframes-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,
+ "max_grant_frames": 64,
+ "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-5.1.0/tests/libxlxml2domconfigdata/max-gntframes-hvm.xml
===================================================================
--- /dev/null
+++ libvirt-5.1.0/tests/libxlxml2domconfigdata/max-gntframes-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>
+ destroy
+ restart
+ destroy
+ <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' maxGrantFrames='64'/>
+ <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-5.1.0/tests/libxlxml2domconfigtest.c
===================================================================
--- libvirt-5.1.0.orig/tests/libxlxml2domconfigtest.c
+++ libvirt-5.1.0/tests/libxlxml2domconfigtest.c
@@ -217,6 +217,9 @@ mymain(void)
DO_TEST("fullvirt-cpuid-legacy-nest");
# endif
+# ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ DO_TEST("max-gntframes-hvm");
+# endif
unlink("libxl-driver.log");
++++++ fb059757-libxl-add-xenbus-controller.patch ++++++
++++ 1468 lines (skipped)
++++++ libvirt-supportconfig ++++++
--- /var/tmp/diff_new_pack.DeiVW3/_old 2019-03-19 11:08:52.914087528 +0100
+++ /var/tmp/diff_new_pack.DeiVW3/_new 2019-03-19 11:08:52.914087528 +0100
@@ -54,19 +54,19 @@
if rpm_installed libvirt-daemon-xen; then
LIBVIRTD_CONF_FILES="$LIBVIRTD_CONF_FILES /etc/libvirt/libxl.conf /etc/libvirt/libxl-lockd.conf /etc/libvirt/libxl-sanlock.conf"
test -d /etc/libvirt/libxl && VM_CONF_FILES="$VM_CONF_FILES $(find -L /etc/libvirt/libxl/ -type f | sort)"
- test -d /var/log/libvirt/libxl && LIBVIRTD_LOG_FILES="$LIBVIRTD_LOG_FILES $(find -L /var/log/libvirt/libxl/ -type f | grep 'log$' | sort)"
+ test -d /var/log/libvirt/libxl && LIBVIRTD_LOG_FILES="$LIBVIRTD_LOG_FILES $(find -L /var/log/libvirt/libxl/ -type f | sort)"
fi
if rpm_installed libvirt-daemon-qemu; then
LIBVIRTD_CONF_FILES="$LIBVIRTD_CONF_FILES /etc/libvirt/qemu.conf /etc/libvirt/qemu-lockd.conf /etc/libvirt/qemu-sanlock.conf"
test -d /etc/libvirt/qemu && VM_CONF_FILES="$VM_CONF_FILES $(find -L /etc/libvirt/qemu/ -type f | sort)"
- test -d /var/log/libvirt/qemu && LIBVIRTD_LOG_FILES="$LIBVIRTD_LOG_FILES $(find -L /var/log/libvirt/qemu/ -type f | grep 'log$' | sort)"
+ test -d /var/log/libvirt/qemu && LIBVIRTD_LOG_FILES="$LIBVIRTD_LOG_FILES $(find -L /var/log/libvirt/qemu/ -type f | sort)"
fi
if rpm_installed libvirt-daemon-lxc; then
LIBVIRTD_CONF_FILES="$LIBVIRTD_CONF_FILES /etc/libvirt/lxc.conf"
test -d /etc/libvirt/lxc && VM_CONF_FILES="$VM_CONF_FILES $(find -L /etc/libvirt/lxc/ -type f | sort)"
- test -d /var/log/libvirt/lxc && LIBVIRTD_LOG_FILES="$LIBVIRTD_LOG_FILES $(find -L /var/log/libvirt/lxc/ -type f | grep 'log$' | sort)"
+ test -d /var/log/libvirt/lxc && LIBVIRTD_LOG_FILES="$LIBVIRTD_LOG_FILES $(find -L /var/log/libvirt/lxc/ -type f | sort)"
fi
if rpm_installed libvirt-admin; then
++++++ libxl-set-cach-mode.patch ++++++
--- /var/tmp/diff_new_pack.DeiVW3/_old 2019-03-19 11:08:52.958087518 +0100
+++ /var/tmp/diff_new_pack.DeiVW3/_new 2019-03-19 11:08:52.958087518 +0100
@@ -7,7 +7,7 @@
===================================================================
--- libvirt-5.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-5.1.0/src/libxl/libxl_conf.c
-@@ -884,6 +884,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
+@@ -893,6 +893,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@@ -38,7 +38,7 @@
static char *
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
const char *username,
-@@ -1132,6 +1156,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
+@@ -1141,6 +1165,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;
++++++ libxl-support-block-script.patch ++++++
--- /var/tmp/diff_new_pack.DeiVW3/_old 2019-03-19 11:08:52.970087515 +0100
+++ /var/tmp/diff_new_pack.DeiVW3/_new 2019-03-19 11:08:52.970087515 +0100
@@ -11,7 +11,7 @@
===================================================================
--- libvirt-5.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-5.1.0/src/libxl/libxl_conf.c
-@@ -884,6 +884,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
+@@ -893,6 +893,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@@ -37,7 +37,7 @@
static void
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{
-@@ -1029,6 +1048,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
+@@ -1038,6 +1057,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{
@@ -45,7 +45,7 @@
const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src);
-@@ -1044,7 +1064,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
+@@ -1053,7 +1073,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1;
} else {
@@ -54,7 +54,7 @@
return -1;
}
-@@ -1157,6 +1177,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
+@@ -1166,6 +1186,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;
libxlDiskSetCacheMode(x_disk, l_disk->cachemode);
++++++ suse-libxl-disable-autoballoon.patch ++++++
libxl: disable autoballooning
Xen 4.12 introduced a CONFIG_DOM0_MEM option, which our xen package uses
to configure dom0 with a sensible initial memory value and disables
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-5.1.0/src/libxl/libxl.conf
===================================================================
--- libvirt-5.1.0.orig/src/libxl/libxl.conf
+++ libvirt-5.1.0/src/libxl/libxl.conf
@@ -4,12 +4,11 @@
# Enable autoballooning of domain0
#
-# By default, autoballooning of domain0 is enabled unless its memory
-# is already limited with Xen's "dom0_mem=" parameter, in which case
-# autoballooning is disabled. Override the default behavior with the
-# autoballoon setting.
+# By default, autoballooning of domain0 is disabled. Traditionally it
+# could also be disabled by using Xen's "dom0_mem=" parameter. Set to
+# 1 to enable autoballooning.
#
-#autoballoon = 1
+#autoballoon = 0
# In order to prevent accidentally starting two domains that
Index: libvirt-5.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-5.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-5.1.0/src/libxl/libxl_conf.c
@@ -22,7 +22,6 @@
#include
-#include
#include
#include
#include
@@ -1760,14 +1759,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
/*
* Get domain0 autoballoon configuration. Honor user-specified
* setting in libxl.conf first. If not specified, autoballooning
- * is disabled when domain0's memory is set with 'dom0_mem'.
- * Otherwise autoballooning is enabled.
+ * is disabled.
*/
static int
libxlGetAutoballoonConf(libxlDriverConfigPtr cfg,
virConfPtr conf)
{
- regex_t regex;
int res;
res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon);
@@ -1776,21 +1773,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
else if (res == 1)
return 0;
- if ((res = regcomp(®ex,
- "(^| )dom0_mem=((|min:|max:)[0-9]+[bBkKmMgG]?,?)+($| )",
- REG_NOSUB | REG_EXTENDED)) != 0) {
- char error[100];
- regerror(res, ®ex, error, sizeof(error));
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to compile regex %s"),
- error);
-
- return -1;
- }
-
- res = regexec(®ex, cfg->verInfo->commandline, 0, NULL, 0);
- regfree(®ex);
- cfg->autoballoon = res == REG_NOMATCH;
+ /* make it explicit */
+ cfg->autoballoon = 0;
return 0;
}
++++++ suse-qemu-domain-hook.py ++++++
--- /var/tmp/diff_new_pack.DeiVW3/_old 2019-03-19 11:08:53.014087505 +0100
+++ /var/tmp/diff_new_pack.DeiVW3/_new 2019-03-19 11:08:53.014087505 +0100
@@ -278,7 +278,7 @@
phase = sys.argv[2]
vmxml = sys.stdin.read()
-tree = etree.fromstring(vmxml)
+tree = etree.fromstring(vmxml.encode("utf-8", "ignore"))
devs = tree.xpath("/domain/devices/disk")
dmmd_configs = tree.xpath("/domain/metadata/hook:dmmd/disk", namespaces={'hook': HOOK_NAMESPACE})