[libvirt] [PATCH 08/27] Add API for issuing 'balloon' monitor command

Mark McLoughlin markmc at redhat.com
Mon Sep 28 13:26:17 UTC 2009


On Thu, 2009-09-24 at 16:00 +0100, Daniel P. Berrange wrote:
> * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Add new
>   qemuMonitorSetBalloon() based on existing code in
>   qemudDomainSetMemoryBalloon
> * src/qemu/qemu_driver.c: Remove use of qemudDomainSetMemoryBalloon()
>   in favour of qemuMonitorSetBalloon(). Fix error code when balloon
>   is not supported
> ---
>  src/qemu/qemu_driver.c       |   56 ++++-------------------------------------
>  src/qemu/qemu_monitor_text.c |   47 +++++++++++++++++++++++++++++++++++
>  src/qemu/qemu_monitor_text.h |    2 +
>  3 files changed, 55 insertions(+), 50 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 8d3c9b6..a0b5e49 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
...
> @@ -3066,10 +3019,13 @@ static int qemudDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
>      }
>  
>      if (virDomainIsActive(vm)) {
> -        ret = qemudDomainSetMemoryBalloon(dom->conn, vm, newmem);
> -        if (ret == 0)
> +        ret = qemuMonitorSetBalloon(vm, newmem);
> +        /* Turn lack of balloon support into a fatal error */
> +        if (ret == 0) {
>              qemudReportError(dom->conn, dom, NULL, VIR_ERR_NO_SUPPORT,
>                               "%s", _("cannot set memory of an active domain"));
> +            ret = -1;
> +        }

Making this an error condition is new; would have been nice as a
preceeding patch

>      } else {
>          vm->def->memory = newmem;
>          ret = 0;
> diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
> index 2a20db3..be13dce 100644
> --- a/src/qemu/qemu_monitor_text.c
> +++ b/src/qemu/qemu_monitor_text.c
> @@ -551,6 +551,10 @@ error:
>  /* The reply from QEMU contains 'ballon: actual=421' where value is in MB */
>  #define BALLOON_PREFIX "balloon: actual="
>  
> +/*
> + * Returns: 0 if balloon not supported, +1 if balloon query worked
> + * or -1 on failure
> + */
>  int qemuMonitorGetBalloonInfo(const virDomainObjPtr vm,
>                                unsigned long *currmem)
>  {

Should be in previous patch

ACK

Cheers,
Mark.




More information about the libvir-list mailing list