Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.2:Staging:F
libvirt
8e669b38-conf-add-event-channels.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 8e669b38-conf-add-event-channels.patch of Package libvirt
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.0.0/docs/formatdomain.html.in =================================================================== --- libvirt-6.0.0.orig/docs/formatdomain.html.in +++ libvirt-6.0.0/docs/formatdomain.html.in @@ -4309,7 +4309,7 @@ <driver iothread='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </controller> - <controller type='xenbus' maxGrantFrames='64'/> + <controller type='xenbus' maxGrantFrames='64' maxEventChannels='2047'/> ... </devices> ...</pre> @@ -4369,7 +4369,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.0.0/docs/schemas/domaincommon.rng =================================================================== --- libvirt-6.0.0.orig/docs/schemas/domaincommon.rng +++ libvirt-6.0.0/docs/schemas/domaincommon.rng @@ -2404,6 +2404,11 @@ <ref name="unsignedInt"/> </attribute> </optional> + <optional> + <attribute name="maxEventChannels"> + <ref name="unsignedInt"/> + </attribute> + </optional> </group> </choice> <optional> Index: libvirt-6.0.0/src/conf/domain_conf.c =================================================================== --- libvirt-6.0.0.orig/src/conf/domain_conf.c +++ libvirt-6.0.0/src/conf/domain_conf.c @@ -2222,6 +2222,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: @@ -11058,6 +11059,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, @@ -11068,6 +11070,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; } @@ -24742,6 +24753,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.0.0/src/conf/domain_conf.h =================================================================== --- libvirt-6.0.0.orig/src/conf/domain_conf.h +++ libvirt-6.0.0/src/conf/domain_conf.h @@ -727,6 +727,7 @@ struct _virDomainUSBControllerOpts { struct _virDomainXenbusControllerOpts { int maxGrantFrames; /* -1 == undef */ + int maxEventChannels; /* -1 == undef */ }; /* Stores the virtual disk controller configuration */
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