[libvirt] [PATCH 4/6] qemu: Reduce memlock limit after detaching hostdev

Andrea Bolognani abologna at redhat.com
Wed Nov 18 14:13:18 UTC 2015


We increase the limit before plugging in a PCI hostdev or a memory
module because some memory might need to be locked due to eg. VFIO.

Of course we should do the opposite after unplugging a device: this
was already the case for memory modules, but not for hostdevs.
---
 src/qemu/qemu_hotplug.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 0bd88ce..2a16f89 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -3084,6 +3084,14 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
         networkReleaseActualDevice(vm->def, net);
         virDomainNetDefFree(net);
     }
+
+    /* QEMU might no longer need to lock as much memory, eg. we just detached
+     * a VFIO device, so adjust the limit here */
+    if (qemuDomainRequiresMlock(vm->def))
+        if (virProcessSetMaxMemLock(vm->pid,
+                                    qemuDomainGetMlockLimitBytes(vm->def)) < 0)
+        VIR_WARN("Failed to adjust locked memory limit");
+
     ret = 0;
 
  cleanup:
-- 
2.5.0




More information about the libvir-list mailing list