[libvirt] [PATCH 9/9] qemu: Implement VIR_DOMAIN_BANDWIDTH_IN_FLOOR

Michal Privoznik mprivozn at redhat.com
Tue Aug 11 10:08:32 UTC 2015


On 11.08.2015 03:31, John Ferlan wrote:
> 
> 
> On 08/03/2015 02:39 AM, Michal Privoznik wrote:
>> Well, there are just two places that needs adjustment:
>>
>> qemuDomainGetInterfaceParameters - to report the @floor
>> qemuDomainSetInterfaceParameters - now that the function has been
>> fixed, we can allow updating @floor too.
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>>  src/qemu/qemu_driver.c | 23 ++++++++++++++++++-----
>>  1 file changed, 18 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index 171b58f..7123083 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -138,7 +138,7 @@ VIR_LOG_INIT("qemu.qemu_driver");
>>  
>>  #define QEMU_NB_BLKIO_PARAM  6
>>  
>> -#define QEMU_NB_BANDWIDTH_PARAM 6
>> +#define QEMU_NB_BANDWIDTH_PARAM 7
>>  
>>  static void processWatchdogEvent(virQEMUDriverPtr driver,
>>                                   virDomainObjPtr vm,
>> @@ -11126,6 +11126,8 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
>>                                 VIR_TYPED_PARAM_UINT,
>>                                 VIR_DOMAIN_BANDWIDTH_IN_BURST,
>>                                 VIR_TYPED_PARAM_UINT,
>> +                               VIR_DOMAIN_BANDWIDTH_IN_FLOOR,
>> +                               VIR_TYPED_PARAM_UINT,
>>                                 VIR_DOMAIN_BANDWIDTH_OUT_AVERAGE,
>>                                 VIR_TYPED_PARAM_UINT,
>>                                 VIR_DOMAIN_BANDWIDTH_OUT_PEAK,
>> @@ -11178,6 +11180,9 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
>>              bandwidth->in->peak = params[i].value.ui;
>>          } else if (STREQ(param->field, VIR_DOMAIN_BANDWIDTH_IN_BURST)) {
>>              bandwidth->in->burst = params[i].value.ui;
>> +        } else if (STREQ(param->field, VIR_DOMAIN_BANDWIDTH_IN_FLOOR)) {
>> +            bandwidth->in->floor = params[i].value.ui;
>> +            inboundSpecified = true;
> 
> If 'average' is required, then can one really provide just floor?
> 
>>          } else if (STREQ(param->field, VIR_DOMAIN_BANDWIDTH_OUT_AVERAGE)) {
>>              bandwidth->out->average = params[i].value.ui;
>>              outboundSpecified = true;
>> @@ -11191,7 +11196,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
>>      /* average is mandatory, peak and burst are optional. So if no
>>       * average is given, we free inbound/outbound here which causes
>>       * inbound/outbound to not be set. */
> 
> Adjust comment to account for floor...
> 
>> -    if (!bandwidth->in->average)
>> +    if (!bandwidth->in->average && !bandwidth->in->floor)
> 
> Again, I thought average was required ... sorry it's just late. Maybe
> the updated comment will answer my query...

Either average or floor is required. This is what I am squashing in:

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d92c6e0..2e44500 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -11197,9 +11197,9 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
         }
     }
 
-    /* average is mandatory, peak and burst are optional. So if no
-     * average is given, we free inbound/outbound here which causes
-     * inbound/outbound to not be set. */
+    /* average or floor are mandatory, peak and burst are optional.
+     * So if no average or floor is given, we free inbound/outbound
+     * here which causes inbound/outbound to not be set. */
     if (!bandwidth->in->average && !bandwidth->in->floor)
         VIR_FREE(bandwidth->in);
     if (!bandwidth->out->average)


> 
> ACK in principle
> 
> John

Michal




More information about the libvir-list mailing list