[libvirt] [PATCHv2 06/15] Add virtio-related options to interfaces

Pavel Hrdina phrdina at redhat.com
Wed Jun 7 14:11:34 UTC 2017


On Tue, Jun 06, 2017 at 01:36:20PM +0200, Ján Tomko wrote:
> <interface type='user'>
>   <mac address='52:54:56:5a:5c:5e'/>
>   <model type='virtio'/>
>   <driver iommu_platform='on' ats='on'/>
> </interface>
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1283251
> ---
>  docs/formatdomain.html.in                          | 19 +++++++
>  docs/schemas/domaincommon.rng                      | 12 +++++
>  src/conf/domain_conf.c                             | 63 ++++++++++++++++++++++
>  src/conf/domain_conf.h                             | 19 +++++++
>  .../qemuxml2argv-virtio-options.xml                |  2 +
>  .../qemuxml2xmlout-virtio-options.xml              |  2 +
>  6 files changed, 117 insertions(+)

[...]

> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 89c8917..ef3383d 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c

[...]

> @@ -5221,6 +5262,24 @@ virDomainDefValidate(virDomainDefPtr def,
>  }
>  
>  
> +static void
> +virDomainVirtioOptionsFormat(virBufferPtr buf,
> +                             virDomainVirtioOptionsPtr virtio)
> +{
> +    if (!virtio)
> +        return;
> +
> +    if (virtio->iommu_platform != VIR_TRISTATE_SWITCH_ABSENT) {
> +        virBufferAsprintf(buf, "iommu_platform='%s' ",
> +                          virTristateSwitchTypeToString(virtio->iommu_platform));
> +    }
> +    if (virtio->ats != VIR_TRISTATE_SWITCH_ABSENT) {
> +        virBufferAsprintf(buf, "ats='%s' ",
> +                          virTristateSwitchTypeToString(virtio->ats));
> +    }
> +}

I don't like that we need to call virBufferTrim() every time this
function is used.  Let's switch the format string to " ats='%s'"
and drop all the virBufferTrim() calls from following patches.  It's
pointless to add the space in order to remove it right away.

Some of the calls of virDomainVirtioOptionsFormat() also requires to
call virBufferAddLit(..., "  "), it feels wrong.

The only place that could conflict whit this approach is in
virDomainVirtioNetDriverFormat() where you can easily call
virDomainVirtioOptionsFormat() after the virBufferTrim().

Pavel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170607/be2b0046/attachment-0001.sig>


More information about the libvir-list mailing list