Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:Update
libvirt.11330
5a64c202-xenconfig-support-max-grant-frames.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5a64c202-xenconfig-support-max-grant-frames.patch of Package libvirt.11330
commit 5a64c202ccdac82f5868e638e5619e2b48c0444b Author: Jim Fehlig <jfehlig@suse.com> 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 <jfehlig@suse.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Index: libvirt-4.0.0/src/xenconfig/xen_xl.c =================================================================== --- libvirt-4.0.0.orig/src/xenconfig/xen_xl.c +++ libvirt-4.0.0/src/xenconfig/xen_xl.c @@ -509,6 +509,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) { @@ -1067,6 +1095,11 @@ xenParseXL(virConfPtr conf, goto cleanup; #endif +#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS + if (xenParseXLGntLimits(conf, def) < 0) + goto cleanup; +#endif + if (xenParseXLDisk(conf, def) < 0) goto cleanup; @@ -1338,6 +1371,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) { @@ -1979,6 +2030,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-4.0.0/tests/xlconfigdata/test-max-gntframes.cfg =================================================================== --- /dev/null +++ libvirt-4.0.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-4.0.0/tests/xlconfigdata/test-max-gntframes.xml =================================================================== --- /dev/null +++ libvirt-4.0.0/tests/xlconfigdata/test-max-gntframes.xml @@ -0,0 +1,31 @@ +<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' 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'/> + </devices> +</domain> Index: libvirt-4.0.0/tests/xlconfigtest.c =================================================================== --- libvirt-4.0.0.orig/tests/xlconfigtest.c +++ libvirt-4.0.0/tests/xlconfigtest.c @@ -297,6 +297,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");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor