]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Take all PHBs into account while calculating memlock limits
authorShivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
Fri, 30 Jun 2017 08:26:08 +0000 (13:56 +0530)
committerAndrea Bolognani <abologna@redhat.com>
Sat, 15 Jul 2017 12:50:42 +0000 (14:50 +0200)
Now that the multi-phb support series is in, work on the TODO at
qemuDomainGetMemLockLimitBytes() to arrive at the correct memlock limit
value.

Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
src/qemu/qemu_domain.c

index d4f401ebeea5452fdc298abcb2a1a58117324519..464d3a1f91bbf9a88e37ee7ae72681cfb13e8c70 100644 (file)
@@ -6673,12 +6673,17 @@ qemuDomainGetMemLockLimitBytes(virDomainDefPtr def)
         unsigned long long memory;
         unsigned long long baseLimit;
         unsigned long long passthroughLimit;
-        size_t nPCIHostBridges;
+        size_t nPCIHostBridges = 0;
         bool usesVFIO = false;
 
-        /* TODO: Detect at runtime once we start using more than just
-         *       the default PCI Host Bridge */
-        nPCIHostBridges = 1;
+        for (i = 0; i < def->ncontrollers; i++) {
+            virDomainControllerDefPtr cont = def->controllers[i];
+
+            if (!virDomainControllerIsPCIHostBridge(cont))
+                continue;
+
+            nPCIHostBridges++;
+        }
 
         for (i = 0; i < def->nhostdevs; i++) {
             virDomainHostdevDefPtr dev = def->hostdevs[i];