[PATCH v2 3/4] QEMU: introduce Virtio free page reporting feature

Nico Pache npache at redhat.com
Mon Oct 12 23:35:38 UTC 2020


This patch enables the free-page-reporting in qemu.

Signed-off-by: Nico Pache <npache at redhat.com>
---
 src/qemu/qemu_command.c  | 5 +++++
 src/qemu/qemu_validate.c | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 9519861e92..6466efc756 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3830,6 +3830,11 @@ qemuBuildMemballoonCommandLine(virCommandPtr cmd,
                           virTristateSwitchTypeToString(def->memballoon->autodeflate));
     }
 
+    if (def->memballoon->free_page_reporting != VIR_TRISTATE_SWITCH_ABSENT) {
+       virBufferAsprintf(&buf, ",free-page-reporting=%s",
+                  virTristateSwitchTypeToString(def->memballoon->free_page_reporting));
+    }
+
     qemuBuildVirtioOptionsStr(&buf, def->memballoon->virtio);
 
     if (qemuCommandAddExtDevice(cmd, &def->memballoon->info) < 0)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index a212605579..cfeb1e67c4 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -3926,6 +3926,13 @@ qemuValidateDomainDeviceDefMemballoon(const virDomainMemballoonDef *memballoon,
         return -1;
     }
 
+    if (memballoon->free_page_reporting != VIR_TRISTATE_SWITCH_ABSENT &&
+         !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_BALLOON_FREE_PAGE_REPORTING)) {
+         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                        _("free-page-reporting is not supported by this QEMU binary"));
+         return -1;
+     }
+
     if (qemuValidateDomainVirtioOptions(memballoon->virtio, qemuCaps) < 0)
         return -1;
 
-- 
2.18.4




More information about the libvir-list mailing list