[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 1/2] qemu: expand domain memory statistics with 'usable'



From: Derbyshev Dmitry <dderbyshev virtuozzo com>

'memtotal' field in qemu corresponds to 'available' in libvirt.
Because of that, 'available' is renamed into 'usable'.
Balloon statistics are not reported in hrf, so no modifications are made in
qemu_monitor_text.c.

Signed-off-by: Derbyshev Dmitry <dderbyshev virtuozzo com>
---
 include/libvirt/libvirt-domain.h | 8 +++++++-
 src/libvirt-domain.c             | 3 +++
 src/qemu/qemu_monitor_json.c     | 2 ++
 tools/virsh-domain-monitor.c     | 2 ++
 4 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index e1d9a0d..b65dd33 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -604,10 +604,16 @@ typedef enum {
     VIR_DOMAIN_MEMORY_STAT_RSS             = 7,
 
     /*
+     * How big the balloon can be inflated without pushing the guest system
+     * to swap, corresponds to 'Available' in /proc/meminfo
+     */
+    VIR_DOMAIN_MEMORY_STAT_USABLE          = 8,
+
+    /*
      * 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              = 8,
+    VIR_DOMAIN_MEMORY_STAT_NR              = 9,
 
 # ifdef VIR_ENUM_SENTINELS
     VIR_DOMAIN_MEMORY_STAT_LAST = VIR_DOMAIN_MEMORY_STAT_NR
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 3e144b6..6ef53a6 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -5986,6 +5986,9 @@ virDomainGetInterfaceParameters(virDomainPtr domain,
  *     The amount of memory which is not being used for any purpose (in kb).
  * VIR_DOMAIN_MEMORY_STAT_AVAILABLE:
  *     The total amount of memory available to the domain's OS (in kb).
+ * VIR_DOMAIN_MEMORY_STAT_USABLE:
+ *     How big the balloon can be inflated without pushing the guest system
+ *     to swap, corresponds to 'Available' in /proc/meminfo
  * VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON:
  *     Current balloon value (in kb).
  *
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index e767414..aa9762f 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -1688,6 +1688,8 @@ int qemuMonitorJSONGetMemoryStats(qemuMonitorPtr mon,
                       VIR_DOMAIN_MEMORY_STAT_UNUSED, 1024);
     GET_BALLOON_STATS("stat-total-memory",
                       VIR_DOMAIN_MEMORY_STAT_AVAILABLE, 1024);
+    GET_BALLOON_STATS("available",
+                      VIR_DOMAIN_MEMORY_STAT_USABLE, 1024);
 
 
  cleanup:
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index 0a93949..1921ff5 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -369,6 +369,8 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd)
             vshPrint(ctl, "unused %llu\n", stats[i].val);
         if (stats[i].tag == VIR_DOMAIN_MEMORY_STAT_AVAILABLE)
             vshPrint(ctl, "available %llu\n", stats[i].val);
+        if (stats[i].tag == VIR_DOMAIN_MEMORY_STAT_USABLE)
+            vshPrint(ctl, "usable %llu\n", stats[i].val);
         if (stats[i].tag == VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON)
             vshPrint(ctl, "actual %llu\n", stats[i].val);
         if (stats[i].tag == VIR_DOMAIN_MEMORY_STAT_RSS)
-- 
1.9.5.msysgit.0


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]