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@xxxxxxxxxx> >> --- >> 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: 200a40f94ec9427eb7187d9d5396ad3a3f2925c8 65bf044686c7502ba16f1bee5763fd3e448994fd Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list