|
|
0a7476 |
From dafb35cfae38f63e861e16623f83392cac3b73dc Mon Sep 17 00:00:00 2001
|
|
|
0a7476 |
Message-Id: <dafb35cfae38f63e861e16623f83392cac3b73dc@dist-git>
|
|
|
0a7476 |
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Golembiovsk=C3=BD?= <tgolembi@redhat.com>
|
|
|
0a7476 |
Date: Wed, 3 Apr 2019 13:19:17 +0200
|
|
|
0a7476 |
Subject: [PATCH] qemu: Add entry for balloon stat stat-disk-caches
|
|
|
0a7476 |
MIME-Version: 1.0
|
|
|
0a7476 |
Content-Type: text/plain; charset=UTF-8
|
|
|
0a7476 |
Content-Transfer-Encoding: 8bit
|
|
|
0a7476 |
|
|
|
0a7476 |
QEMU commit bf1e7140e adds reporting of new balloon statistic to QEMU
|
|
|
0a7476 |
2.12. Value represents the amount of memory that can be quickly
|
|
|
0a7476 |
reclaimed without additional I/O. Let's add that too.
|
|
|
0a7476 |
|
|
|
0a7476 |
Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
|
|
|
0a7476 |
Reviewed-by: John Ferlan <jferlan@redhat.com>
|
|
|
0a7476 |
(cherry picked from commit aee046550893e7c0e5ccb4861dd3f0715d31eeb7)
|
|
|
0a7476 |
|
|
|
0a7476 |
https: //bugzilla.redhat.com/show_bug.cgi?id=1690122
|
|
|
0a7476 |
Signed-off-by: Jaroslav Suchanek <jsuchane@redhat.com>
|
|
|
0a7476 |
Message-Id: <1554290357-24601-1-git-send-email-jsuchane@redhat.com>
|
|
|
0a7476 |
Reviewed-by: Erik Skultety <eskultet@redhat.com>
|
|
|
0a7476 |
---
|
|
|
0a7476 |
include/libvirt/libvirt-domain.h | 9 ++++++++-
|
|
|
0a7476 |
src/libvirt-domain.c | 3 +++
|
|
|
0a7476 |
src/qemu/qemu_driver.c | 1 +
|
|
|
0a7476 |
src/qemu/qemu_monitor_json.c | 2 ++
|
|
|
0a7476 |
tools/virsh-domain-monitor.c | 2 ++
|
|
|
0a7476 |
tools/virsh.pod | 5 +++++
|
|
|
0a7476 |
6 files changed, 21 insertions(+), 1 deletion(-)
|
|
|
0a7476 |
|
|
|
0a7476 |
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
|
|
|
0a7476 |
index 796f2e1408..fdd2d6b8ea 100644
|
|
|
0a7476 |
--- a/include/libvirt/libvirt-domain.h
|
|
|
0a7476 |
+++ b/include/libvirt/libvirt-domain.h
|
|
|
0a7476 |
@@ -628,11 +628,18 @@ typedef enum {
|
|
|
0a7476 |
/* Timestamp of the last update of statistics, in seconds. */
|
|
|
0a7476 |
VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE = 9,
|
|
|
0a7476 |
|
|
|
0a7476 |
+ /*
|
|
|
0a7476 |
+ * The amount of memory, that can be quickly reclaimed without
|
|
|
0a7476 |
+ * additional I/O (in kB). Typically these pages are used for caching files
|
|
|
0a7476 |
+ * from disk.
|
|
|
0a7476 |
+ */
|
|
|
0a7476 |
+ VIR_DOMAIN_MEMORY_STAT_DISK_CACHES = 10,
|
|
|
0a7476 |
+
|
|
|
0a7476 |
/*
|
|
|
0a7476 |
* The number of statistics supported by this version of the interface.
|
|
|
0a7476 |
* To add new statistics, add them to the enum and increase this value.
|
|
|
0a7476 |
*/
|
|
|
0a7476 |
- VIR_DOMAIN_MEMORY_STAT_NR = 10,
|
|
|
0a7476 |
+ VIR_DOMAIN_MEMORY_STAT_NR = 11,
|
|
|
0a7476 |
|
|
|
0a7476 |
# ifdef VIR_ENUM_SENTINELS
|
|
|
0a7476 |
VIR_DOMAIN_MEMORY_STAT_LAST = VIR_DOMAIN_MEMORY_STAT_NR
|
|
|
0a7476 |
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
|
|
|
0a7476 |
index 5f7f0bfeba..568023176b 100644
|
|
|
0a7476 |
--- a/src/libvirt-domain.c
|
|
|
0a7476 |
+++ b/src/libvirt-domain.c
|
|
|
0a7476 |
@@ -5732,6 +5732,9 @@ virDomainGetInterfaceParameters(virDomainPtr domain,
|
|
|
0a7476 |
* Current balloon value (in kb).
|
|
|
0a7476 |
* VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE
|
|
|
0a7476 |
* Timestamp of the last statistic
|
|
|
0a7476 |
+ * VIR_DOMAIN_MEMORY_STAT_DISK_CACHES
|
|
|
0a7476 |
+ * Memory that can be reclaimed without additional I/O, typically disk
|
|
|
0a7476 |
+ * caches (in kb).
|
|
|
0a7476 |
*
|
|
|
0a7476 |
* Returns: The number of stats provided or -1 in case of failure.
|
|
|
0a7476 |
*/
|
|
|
0a7476 |
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
|
|
|
0a7476 |
index 295613ba3c..99d0dad911 100644
|
|
|
0a7476 |
--- a/src/qemu/qemu_driver.c
|
|
|
0a7476 |
+++ b/src/qemu/qemu_driver.c
|
|
|
0a7476 |
@@ -19788,6 +19788,7 @@ qemuDomainGetStatsBalloon(virQEMUDriverPtr driver,
|
|
|
0a7476 |
STORE_MEM_RECORD(RSS, "rss")
|
|
|
0a7476 |
STORE_MEM_RECORD(LAST_UPDATE, "last-update")
|
|
|
0a7476 |
STORE_MEM_RECORD(USABLE, "usable")
|
|
|
0a7476 |
+ STORE_MEM_RECORD(DISK_CACHES, "disk_caches")
|
|
|
0a7476 |
}
|
|
|
0a7476 |
|
|
|
0a7476 |
#undef STORE_MEM_RECORD
|
|
|
0a7476 |
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
|
|
|
0a7476 |
index 8970d95584..438d82e194 100644
|
|
|
0a7476 |
--- a/src/qemu/qemu_monitor_json.c
|
|
|
0a7476 |
+++ b/src/qemu/qemu_monitor_json.c
|
|
|
0a7476 |
@@ -2100,6 +2100,8 @@ int qemuMonitorJSONGetMemoryStats(qemuMonitorPtr mon,
|
|
|
0a7476 |
VIR_DOMAIN_MEMORY_STAT_USABLE, 1024);
|
|
|
0a7476 |
GET_BALLOON_STATS(data, "last-update",
|
|
|
0a7476 |
VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE, 1);
|
|
|
0a7476 |
+ GET_BALLOON_STATS(statsdata, "stat-disk-caches",
|
|
|
0a7476 |
+ VIR_DOMAIN_MEMORY_STAT_DISK_CACHES, 1024);
|
|
|
0a7476 |
ret = got;
|
|
|
0a7476 |
cleanup:
|
|
|
0a7476 |
virJSONValueFree(cmd);
|
|
|
0a7476 |
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
|
|
|
0a7476 |
index 87660ee674..b9b4f9739b 100644
|
|
|
0a7476 |
--- a/tools/virsh-domain-monitor.c
|
|
|
0a7476 |
+++ b/tools/virsh-domain-monitor.c
|
|
|
0a7476 |
@@ -364,6 +364,8 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd)
|
|
|
0a7476 |
vshPrint(ctl, "rss %llu\n", stats[i].val);
|
|
|
0a7476 |
if (stats[i].tag == VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE)
|
|
|
0a7476 |
vshPrint(ctl, "last_update %llu\n", stats[i].val);
|
|
|
0a7476 |
+ if (stats[i].tag == VIR_DOMAIN_MEMORY_STAT_DISK_CACHES)
|
|
|
0a7476 |
+ vshPrint(ctl, "disk_caches %llu\n", stats[i].val);
|
|
|
0a7476 |
}
|
|
|
0a7476 |
|
|
|
0a7476 |
ret = true;
|
|
|
0a7476 |
diff --git a/tools/virsh.pod b/tools/virsh.pod
|
|
|
0a7476 |
index 3e9c264fe8..00cbee19b6 100644
|
|
|
0a7476 |
--- a/tools/virsh.pod
|
|
|
0a7476 |
+++ b/tools/virsh.pod
|
|
|
0a7476 |
@@ -924,6 +924,8 @@ B<Explanation of fields>:
|
|
|
0a7476 |
usable - The amount of memory which can be reclaimed by balloon
|
|
|
0a7476 |
without causing host swapping (in KiB)
|
|
|
0a7476 |
last-update - Timestamp of the last update of statistics (in seconds)
|
|
|
0a7476 |
+ disk_caches - The amount of memory that can be reclaimed without
|
|
|
0a7476 |
+additional I/O, typically disk caches (in KiB)
|
|
|
0a7476 |
|
|
|
0a7476 |
For QEMU/KVM with a memory balloon, setting the optional I<--period> to a
|
|
|
0a7476 |
value larger than 0 in seconds will allow the balloon driver to return
|
|
|
0a7476 |
@@ -1030,6 +1032,9 @@ I<--balloon> returns:
|
|
|
0a7476 |
balloon without causing host swapping (in KiB)
|
|
|
0a7476 |
"balloon.last-update" - timestamp of the last update of statistics
|
|
|
0a7476 |
(in seconds)
|
|
|
0a7476 |
+ "balloon.disk_caches " - the amount of memory that can be reclaimed
|
|
|
0a7476 |
+ without additional I/O, typically disk
|
|
|
0a7476 |
+ caches (in KiB)
|
|
|
0a7476 |
|
|
|
0a7476 |
I<--vcpu> returns:
|
|
|
0a7476 |
|
|
|
0a7476 |
--
|
|
|
0a7476 |
2.21.0
|
|
|
0a7476 |
|