]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
QEMU: introduce Virtio free page reporting feature
authorNico Pache <npache@redhat.com>
Mon, 12 Oct 2020 23:35:38 +0000 (19:35 -0400)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 13 Oct 2020 15:02:45 +0000 (17:02 +0200)
This patch enables the free-page-reporting in qemu.

Signed-off-by: Nico Pache <npache@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_command.c
src/qemu/qemu_validate.c

index eec860382c3bda214b729932520a1935060e8866..697a2db62b8678cdbaaec65e2b6ccdb591e0ecbf 100644 (file)
@@ -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)
index a212605579d2d1e31bc77e582b9be35209052f6f..27e10d59fd255980dbd0d5d4c4a5afd96ed5192c 100644 (file)
@@ -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;