On Wed, Feb 19, 2025 at 22:27:13 +0530, Harikumar Rajkumar wrote:
> From: Chun Feng Wu <[email protected]>
>
> ThrottleGroup lifecycle implementation, note, in QOM, throttlegroup name is
> prefixed with
> "throttle-" to clearly separate throttle group objects into their own
> namespace.
> * "qemuDomainSetThrottleGroup", this method is to add("object-add") or
> update("qom-set")
> throttlegroup in QOM and update corresponding objects in DOM
> * "qemuDomainGetThrottleGroup", this method queries throttlegroup info by
> groupname
> * "qemuDomainDelThrottleGroup", this method checks if group is referenced by
> any throttle
> in disks and delete it if it's not used anymore
> * Check flag "QEMU_CAPS_OBJECT_JSON" during qemuDomainSetThrottleGroup when
> vm is active,
> throttle group feature requries such flag
> * "objectAddNoWrap"("props") check is done by reusing qemuMonitorAddObject in
> qemuDomainSetThrottleGroup
>
> Signed-off-by: Chun Feng Wu <[email protected]>
>
> * Apply suggested coding style changes.
> * cleanup qemu Get ThrottleGroup.
> * Update the version to 11.1.0.
>
> Signed-off-by: Harikumar Rajkumar <[email protected]>
> ---
> src/qemu/qemu_driver.c | 243 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 243 insertions(+)
[...]
> + priv = vm->privateData;
> + qemuCaps = priv->qemuCaps;
> + if (virDomainObjIsActive(vm)) {
> + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_JSON)) {
> + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
> + _("This QEMU doesn't support throttle group
> creation"));
> + return -1;
> + }
While looking at this I noticed that QEMU_CAPS_OBJECT_JSON is no longer
needed as it's always present with qemu versions we currently support:
https://lists.libvirt.org/archives/list/[email protected]/message/7ROU6X7QLFZ2UOHY23ZUZHDVKHZST6IV/
Once the patches are reviewed I'll rebase this on top and delete this.