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

Michal Privoznik mprivozn at redhat.com
Tue Sep 11 07:10:43 UTC 2018


On 09/10/2018 05:06 PM, Peter Krempa wrote:
> 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?

I did send a patch for that quite a while ago:

https://www.redhat.com/archives/libvir-list/2015-January/msg00171.html

and it was decided to just warn users instead of throwing and error and
denying starting such domain.

I don't mind revisiting that decision though. But we have backward
compatibility to bear in mind.

Michal




More information about the libvir-list mailing list