From: Andrea Bolognani Date: Wed, 18 Nov 2015 12:56:09 +0000 (+0100) Subject: qemu: Reduce memlock limit after detaching PCI hostdev X-Git-Tag: v1.3.1-rc1~173 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b583e80cb84a4fe87d01d036557bb64e36395359;p=thirdparty%2Flibvirt.git qemu: Reduce memlock limit after detaching PCI hostdev 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 PCI hostdevs. --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index cc2a3c94f8..8194ece92b 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3051,6 +3051,10 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver, switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: qemuDomainRemovePCIHostDevice(driver, vm, hostdev); + /* QEMU might no longer need to lock as much memory, eg. we just + * detached the last VFIO device, so adjust the limit here */ + if (qemuDomainAdjustMaxMemLock(vm) < 0) + VIR_WARN("Failed to adjust locked memory limit"); break; case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: qemuDomainRemoveUSBHostDevice(driver, vm, hostdev); @@ -3076,6 +3080,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver, networkReleaseActualDevice(vm->def, net); virDomainNetDefFree(net); } + ret = 0; cleanup: