
On Thu, 2021-04-29 at 14:12 +0300, Gavi Teitz wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=1925363
Add support for setting the page-per-vq flag, which is important for vdpa with vhost-user performance.
Signed-off-by: Gavi Teitz <gavi@nvidia.com>
[snip]
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9d98f48..0350fde 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -10446,6 +10446,7 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, g_autofree char *queues = NULL; g_autofree char *rx_queue_size = NULL; g_autofree char *tx_queue_size = NULL; + g_autofree char *page_per_vq = NULL; g_autofree char *filter = NULL; g_autofree char *internal = NULL; g_autofree char *mode = NULL; @@ -10615,6 +10616,7 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, queues = virXMLPropString(cur, "queues"); rx_queue_size = virXMLPropString(cur, "rx_queue_size"); tx_queue_size = virXMLPropString(cur, "tx_queue_size"); + page_per_vq = virXMLPropString(cur, "page_per_vq"); if (virDomainVirtioOptionsParseXML(cur, &def-
virtio) < 0) goto error; @@ -11041,6 +11043,15 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, } def->driver.virtio.tx_queue_size = q; } + if (page_per_vq) { + if ((val = virTristateSwitchTypeFromString(page_per_vq)) <= 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown page_per_vq mode '%s'"), + page_per_vq); + goto error; + } + def->driver.virtio.page_per_vq = val; + }
Tim Wiederhake has been doing a bunch of refactoring work in this area changing code like this to use the newish virXMLProp* functions. So I think this whole chunk could instead be something like: if (virXMLPropTristateSwitch(cur, "page_per_vq", VIR_XML_PROP_NONE, &def->driver.virtio.page_per_vq) < 0) return -1; (untested) Jonathon