[libvirt] [PATCH 9/9] qemu: Implement VIR_DOMAIN_BANDWIDTH_IN_FLOOR
John Ferlan
jferlan at redhat.com
Tue Aug 11 01:31:48 UTC 2015
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...
ACK in principle
John
> VIR_FREE(bandwidth->in);
> if (!bandwidth->out->average)
> VIR_FREE(bandwidth->out);
> @@ -11355,7 +11360,15 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom,
> if (net->bandwidth && net->bandwidth->in)
> params[i].value.ui = net->bandwidth->in->burst;
> break;
> - case 3: /* outbound.average */
> + case 3: /* inbound.floor */
> + if (virTypedParameterAssign(¶ms[i],
> + VIR_DOMAIN_BANDWIDTH_IN_FLOOR,
> + VIR_TYPED_PARAM_UINT, 0) < 0)
> + goto cleanup;
> + if (net->bandwidth && net->bandwidth->in)
> + params[i].value.ui = net->bandwidth->in->floor;
> + break;
> + case 4: /* outbound.average */
> if (virTypedParameterAssign(¶ms[i],
> VIR_DOMAIN_BANDWIDTH_OUT_AVERAGE,
> VIR_TYPED_PARAM_UINT, 0) < 0)
> @@ -11363,7 +11376,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom,
> if (net->bandwidth && net->bandwidth->out)
> params[i].value.ui = net->bandwidth->out->average;
> break;
> - case 4: /* outbound.peak */
> + case 5: /* outbound.peak */
> if (virTypedParameterAssign(¶ms[i],
> VIR_DOMAIN_BANDWIDTH_OUT_PEAK,
> VIR_TYPED_PARAM_UINT, 0) < 0)
> @@ -11371,7 +11384,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom,
> if (net->bandwidth && net->bandwidth->out)
> params[i].value.ui = net->bandwidth->out->peak;
> break;
> - case 5: /* outbound.burst */
> + case 6: /* outbound.burst */
> if (virTypedParameterAssign(¶ms[i],
> VIR_DOMAIN_BANDWIDTH_OUT_BURST,
> VIR_TYPED_PARAM_UINT, 0) < 0)
>
More information about the libvir-list
mailing list