From 210dd0c58d6f7b12fea65ce1fa42b343de4219b6 Mon Sep 17 00:00:00 2001 From: Shivaprasad G Bhat Date: Fri, 30 Jun 2017 13:56:08 +0530 Subject: [PATCH] qemu: Take all PHBs into account while calculating memlock limits 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 Reviewed-by: Andrea Bolognani --- src/qemu/qemu_domain.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d4f401ebee..464d3a1f91 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -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];