[libvirt] [PATCH] qemu: add entry for balloon stat stat-disk-caches

Michal Privoznik mprivozn at redhat.com
Tue Jun 5 13:43:39 UTC 2018


On 06/05/2018 01:41 PM, Tomáš Golembiovský (by way of Tomáš Golembiovský
<tgolembi at redhat.com>) wrote:
> Signed-off-by: Tomáš Golembiovský <tgolembi at redhat.com>
> ---
>  include/libvirt/libvirt-domain.h | 9 ++++++++-
>  src/qemu/qemu_monitor_json.c     | 2 ++
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
> index da773b76cb..b96c018a90 100644
> --- a/include/libvirt/libvirt-domain.h
> +++ b/include/libvirt/libvirt-domain.h
> @@ -628,11 +628,18 @@ typedef enum {
>      /* Timestamp of the last update of statistics, in seconds. */
>      VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE     = 9,
>  
> +    /*
> +     * The amount of memory, in bytes, that can be quickly reclaimed without
> +     * additional I/O. Typically these pages are used for caching files from
> +     * disk.
> +     */
> +    VIR_DOMAIN_MEMORY_STAT_DISK_CACHES     = 10,
> +
>      /*
>       * The number of statistics supported by this version of the interface.
>       * To add new statistics, add them to the enum and increase this value.
>       */
> -    VIR_DOMAIN_MEMORY_STAT_NR              = 10,
> +    VIR_DOMAIN_MEMORY_STAT_NR              = 11,
>  
>  # ifdef VIR_ENUM_SENTINELS
>      VIR_DOMAIN_MEMORY_STAT_LAST = VIR_DOMAIN_MEMORY_STAT_NR
> diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
> index 42d7b9c5e9..b0a65d8af9 100644
> --- a/src/qemu/qemu_monitor_json.c
> +++ b/src/qemu/qemu_monitor_json.c
> @@ -2069,6 +2069,8 @@ int qemuMonitorJSONGetMemoryStats(qemuMonitorPtr mon,
>                        VIR_DOMAIN_MEMORY_STAT_AVAILABLE, 1024);
>      GET_BALLOON_STATS(statsdata, "stat-available-memory",
>                        VIR_DOMAIN_MEMORY_STAT_USABLE, 1024);
> +    GET_BALLOON_STATS(statsdata, "stat-disk-caches",
> +                      VIR_DOMAIN_MEMORY_STAT_DISK_CACHES, 1024);
>      GET_BALLOON_STATS(data, "last-update",
>                        VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE, 1);
>      ret = got;
> 

No, this must go at the end because if there's a client requesting 9
items, they would get "last-update" as the 9th item. But with this
change they would no longer get "last-update" rather "stat-disk-caches".
IOW, you need to honour the number of stat item from the header file.

Also, it would be nice if virsh reports this new stat.

Michal




More information about the libvir-list mailing list