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

Erik Skultety eskultet at redhat.com
Tue Jun 5 13:41:02 UTC 2018


On Tue, Jun 05, 2018 at 03:36:14PM +0200, Michal Privoznik wrote:
> On 06/05/2018 03:08 PM, Erik Skultety wrote:
> > On Tue, Jun 05, 2018 at 01:41:02PM +0200, Tomáš Golembiovský 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,
> >
> > this is a public header, this must never change, otherwise you break backwards
> > compatibility...
>
> Not true. This is meant to work roughly like this:
>
>   virDomainMemoryStatStruct stats[VIR_DOMAIN_MEMORY_STAT_NR];
>
>   nr_stats = virDomainMemoryStats(dom, stats, VIR_DOMAIN_MEMORY_STAT_NR, 0);
>
> And depending what version you are compiled with you will get different
> number of results. Important to say that to maintain backward
> compatibility we have a rule that says _NR can only grow and never
> shrink. Tomas' patch is actually correct (in this aspect).
> View examples:

Doh! If only I read the commentary right above the enum it would tell me the
very same thing, I have to admit, I didn't even read properly, I saw a value
being changed and I immediately responded, sorry, I take it back.

Erik




More information about the libvir-list mailing list