]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: expand domain memory statistics with 'usable'
authorDerbyshev Dmitry <dderbyshev@virtuozzo.com>
Wed, 1 Jun 2016 17:07:06 +0000 (20:07 +0300)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 26 Jul 2016 15:30:01 +0000 (17:30 +0200)
'memtotal' in virtio drivers and qemu corresponds to 'available' in libvirt.
Because of that, 'stat-available-memory' 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
src/libvirt-domain.c
src/qemu/qemu_monitor_json.c
tools/virsh-domain-monitor.c

index 7ea93aa8df141c9b8ee429aae8f7675424486f14..3fb482b3062e07ab46b3e2620909441789129e53 100644 (file)
@@ -603,11 +603,17 @@ typedef enum {
      * is in kB */
     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
index 4e71a9438922f62d00cd09e7030971e25c514588..1467030db76f798af2b5a773d1f843e94167ff17 100644 (file)
@@ -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).
  *
index caac78b76722523b992e3fd5349bdc62835aab6e..7fa984741b64091ecac00664d933dad6ac3aec22 100644 (file)
@@ -1719,6 +1719,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("stat-available-memory",
+                      VIR_DOMAIN_MEMORY_STAT_USABLE, 1024);
     ret = got;
  cleanup:
     virJSONValueFree(cmd);
index c712fa5e1b661c8d89018d075daae12363373aec..7f30da2188653bad6e5da0a28fb2c9c9eb7a6502 100644 (file)
@@ -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)