[libvirt PATCH] qemu: Fix memstat for (non-)transitional memballoon

Peter Krempa pkrempa at redhat.com
Tue Jan 12 18:56:11 UTC 2021


On Tue, Jan 12, 2021 at 18:47:36 +0100, Andrea Bolognani wrote:
> Depending on the memballoon model, the corresponding QOM node
> will have a different type and we need to account for this
> when searching for it in the QOM tree.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1911786
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> ---
>  src/qemu/qemu_monitor.c | 22 +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index b5c0364652..c97dadd11e 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -1017,7 +1017,27 @@ qemuMonitorInitBalloonObjectPath(qemuMonitorPtr mon,
>  
>      switch (balloon->info.type) {
>      case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
> -        name = "virtio-balloon-pci";
> +        switch (balloon->model) {

This is an 'int'. Please typecast it appropriately ...

> +            case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO:
> +                name = "virtio-balloon-pci";
> +                break;
> +            case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_TRANSITIONAL:
> +                name = "virtio-balloon-pci-transitional";
> +                break;
> +            case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_NON_TRANSITIONAL:
> +                name = "virtio-balloon-pci-non-transitional";
> +                break;
> +            case VIR_DOMAIN_MEMBALLOON_MODEL_XEN:
> +            case VIR_DOMAIN_MEMBALLOON_MODEL_NONE:
> +                virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                        _("invalid model for virtio-balloon-pci"));
> +                return;
> +            case VIR_DOMAIN_MEMBALLOON_MODEL_LAST:
> +            default:
> +                virReportEnumRangeError(virDomainMemballoonModel,
> +                                        balloon->model);
> +                return;

... so that this actually makes sense and is kept up to date.

Also, reporting errors in a function which doesn't abort execution on
said error is dubious.

> +        }
>          break;
>      case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
>          name = "virtio-balloon-ccw";
> -- 
> 2.26.2
> 




More information about the libvir-list mailing list