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(a)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