[libvirt] [PATCH 2/2] qemu: hotplug: Clean up memory backing files after failed memory hotplug

Peter Krempa pkrempa at redhat.com
Tue Mar 13 17:36:33 UTC 2018


Libvirt provides full path to the backing file since commit
fec8f9c49afb479f6. This made qemu create the backend object but did not
delete it. This was fixed for unplug case in 4d83a6722f but not in case
of failure to hotplug the frontend. We'd leave the files behind which
would make memory unusable in case of hugepages.

https://bugzilla.redhat.com/show_bug.cgi?id=1553085

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_hotplug.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index cff40625f8..70325a1246 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -2219,6 +2219,10 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
     if (!mem)
         goto audit;

+    /* we need to remove the memory backing file so that it does not hog memory */
+    if (objAdded)
+        ignore_value(qemuProcessDestroyMemoryBackingPath(driver, vm, mem));
+
  removedef:
     if ((id = virDomainMemoryFindByDef(vm->def, mem)) >= 0)
         mem = virDomainMemoryRemove(vm->def, id);
-- 
2.16.2




More information about the libvir-list mailing list