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@xxxxxxxxxx> > [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