[libvirt] [PATCH v3 06/10] Add capability to fetch balloon stats

Daniel P. Berrange berrange at redhat.com
Fri Jul 12 12:42:08 UTC 2013


On Thu, Jul 11, 2013 at 07:55:56PM -0400, John Ferlan wrote:
> This patch will add the qemuMonitorJSONGetMemoryStats() to execute a
> "guest-stats" on the balloonpath using "get-qom" replacing the former
> mechanism which looked through the "query-ballon" returned data for
> the fields.  The "query-balloon" code only returns 'actual' memory.
> Rather than duplicating the existing code, have the JSON API use the
> GetBalloonInfo API.
> 
> A check in the qemuMonitorGetMemoryStats() will be made to ensure the
> balloon driver path has been set.  Since the underlying JSON code can
> return data not associated with the balloon driver, we don't fail on
> a failure to get the balloonpath.  Of course since we've made the check,
> we can then set the ballooninit flag.  Getting the path here is primarily
> due to the process reconnect path which doesn't attempt to set the
> collection period.
> ---
>  src/qemu/qemu_monitor.c      |  10 ++-
>  src/qemu/qemu_monitor_json.c | 190 ++++++++++++++++++++-----------------------
>  src/qemu/qemu_monitor_json.h |   1 +
>  3 files changed, 95 insertions(+), 106 deletions(-)

Can you also extend qemumonitorjsontest.c to cover the new
code in  qemuMonitorJSONGetMemoryStats.

> 
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index a3e250c..14b80e3 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -1483,10 +1483,14 @@ int qemuMonitorGetMemoryStats(qemuMonitorPtr mon,
>          return -1;
>      }
>  
> -    if (mon->json)
> -        ret = qemuMonitorJSONGetMemoryStats(mon, stats, nr_stats);
> -    else
> +    if (mon->json) {
> +        ignore_value(qemuMonitorFindBalloonObjectPath(mon, mon->vm, "/"));
> +        mon->ballooninit = true;

Hmm, I think that qemuMonitorFindBalloonObjectPath ought to be
setting 'mon->ballooninit = true' itself, rather than expecting
all the callers to do it.

Actually I should have mentioned this against the previous patch.

> +        ret = qemuMonitorJSONGetMemoryStats(mon, mon->balloonpath,
> +                                            stats, nr_stats);
> +    } else {
>          ret = qemuMonitorTextGetMemoryStats(mon, stats, nr_stats);
> +    }
>      return ret;
>  }
>  

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list