[libvirt] [PATCH] qemu: check for vhostusers bandwidth

Peter Krempa pkrempa at redhat.com
Mon Sep 10 15:06:47 UTC 2018


On Mon, Sep 10, 2018 at 16:30:59 +0200, Roland Schulz wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1524230

Please describe your change in the commit message. A bugzilla may not
give enough reasoning for it.

> 
> Signed-off-by: Roland Schulz <schullzroll at gmail.com>
> ---
>  src/qemu/qemu_command.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index ff9589f593..284c2709fc 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -8244,6 +8244,8 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
>                                virQEMUCapsPtr qemuCaps,
>                                unsigned int bootindex)
>  {
> +    virNetDevBandwidthPtr actualBandwidth = virDomainNetGetActualBandwidth(net);
> +    virDomainNetType actualType = virDomainNetGetActualType(net);
>      virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
>      char *chardev = NULL;
>      char *netdev = NULL;
> @@ -8257,6 +8259,19 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
>          goto cleanup;
>      }
>  
> +    /* Set bandwidth or warn if requested and not supported. */
> +    if (actualBandwidth) {
> +        if (virNetDevSupportBandwidth(actualType)) {
> +            if (virNetDevBandwidthSet(net->ifname, actualBandwidth, false,
> +                                      !virDomainNetTypeSharesHostView(net)) < 0)
> +                goto cleanup;

This is a very convoluted dead branch.

qemuBuildVhostuserCommandLine gets called only when
actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER and virNetDevSupportBandwidth
returns false for that value.

> +        } else {
> +            VIR_WARN("setting bandwidth on interfaces of "
> +                     "type '%s' is not implemented yet",
> +                     virDomainNetTypeToString(actualType));

Reporting a warning is almost pointless. It only gets logged but the
user does not get notified. Is this a hard failure where we can error
out?


> +        }
> +    }
> +
>      switch ((virDomainChrType)net->data.vhostuser->type) {
>      case VIR_DOMAIN_CHR_TYPE_UNIX:
>          if (!(chardev = qemuBuildChrChardevStr(logManager, secManager,
> -- 
> 2.17.1
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180910/354e9d75/attachment-0001.sig>


More information about the libvir-list mailing list