Another bug fix for the Factory libvirt package.

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=820
This commit is contained in:
James Fehlig 2020-04-09 22:45:33 +00:00 committed by Git OBS Bridge
parent d63331a41e
commit 7ba3f0b84b
10 changed files with 548 additions and 13 deletions

View File

@ -0,0 +1,120 @@
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

@ -0,0 +1,210 @@
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

@ -0,0 +1,190 @@
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,3 +1,13 @@
-------------------------------------------------------------------
Thu Apr 9 22:04:57 UTC 2020 - James Fehlig <jfehlig@suse.com>
- libxl: Add support for max event channels with maxEventChannel
attribute on the xenbus controller
8e669b38-conf-add-event-channels.patch,
a93f55c5-libxl-add-event-channels.patch,
967f4eeb-xenconfig-event-channels.patch
bsc#1168767
-------------------------------------------------------------------
Mon Apr 6 14:30:29 UTC 2020 - James Fehlig <jfehlig@suse.com>
@ -10,6 +20,8 @@ Fri Apr 3 20:47:27 UTC 2020 - James Fehlig <jfehlig@suse.com>
- Update to libvirt 6.2.0
- Many incremental improvements and bug fixes, see
https://libvirt.org/news.html
- CVE-2020-10701
bsc#1168680
- Dropped patches:
a30078cb-qemu-create-mp-target.patch,
aeb909bf-qemu-multipath-fix.patch

View File

@ -339,6 +339,9 @@ 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
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@ -875,6 +878,9 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1
@ -1226,9 +1232,6 @@ mv %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
%check
cd tests
SKIP_TESTS=""
# These tests don't current work in a mock build root
# virnetsockettest: needs unsupported linux-user syscalls
SKIP_TESTS="$SKIP_TESTS virnetsockettest"
# virportallocatortest fails on aarch64 due to unsupported IPV6_V6ONLY flag
%ifarch aarch64
SKIP_TESTS="$SKIP_TESTS virportallocatortest"

View File

@ -7,7 +7,7 @@ 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
@@ -866,6 +866,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
@@ -870,6 +870,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -38,7 +38,7 @@ Index: libvirt-6.2.0/src/libxl/libxl_conf.c
static char *
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
const char *username,
@@ -1107,6 +1131,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1111,6 +1135,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;

View File

@ -11,7 +11,7 @@ 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
@@ -866,6 +866,22 @@ libxlDiskSetDiscard(libxl_device_disk *x
@@ -870,6 +870,22 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -34,7 +34,7 @@ Index: libvirt-6.2.0/src/libxl/libxl_conf.c
static void
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{
@@ -1006,6 +1022,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
@@ -1010,6 +1026,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{
@ -42,7 +42,7 @@ Index: libvirt-6.2.0/src/libxl/libxl_conf.c
const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src);
@@ -1021,7 +1038,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1025,7 +1042,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1;
} else {
@ -51,7 +51,7 @@ Index: libvirt-6.2.0/src/libxl/libxl_conf.c
}
x_disk->vdev = g_strdup(l_disk->dst);
@@ -1132,6 +1149,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1136,6 +1153,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;
libxlDiskSetCacheMode(x_disk, l_disk->cachemode);

View File

@ -31,7 +31,7 @@ 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
@@ -1784,7 +1784,7 @@ libxlDriverConfigNew(void)
@@ -1788,7 +1788,7 @@ libxlDriverConfigNew(void)
int
libxlDriverConfigInit(libxlDriverConfigPtr cfg)
{

View File

@ -31,7 +31,7 @@ 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
@@ -1698,15 +1698,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
@@ -1702,15 +1702,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
/*
* Get domain0 autoballoon configuration. Honor user-specified
* setting in libxl.conf first. If not specified, autoballooning
@ -48,7 +48,7 @@ Index: libvirt-6.2.0/src/libxl/libxl_conf.c
int res;
res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon);
@@ -1715,15 +1712,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
@@ -1719,15 +1716,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
else if (res == 1)
return 0;

View File

@ -9,7 +9,7 @@ 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
@@ -1738,6 +1738,15 @@ libxlDriverConfigNew(void)
@@ -1742,6 +1742,15 @@ libxlDriverConfigNew(void)
cfg->autoDumpDir = g_strdup(LIBXL_DUMP_DIR);
cfg->channelDir = g_strdup(LIBXL_CHANNEL_DIR);