[libvirt] [PATCH] qemu: Take all PHBs into account while calculating memlock limits
Andrea Bolognani
abologna at redhat.com
Mon Jul 3 13:51:16 UTC 2017
On Fri, 2017-06-30 at 13:56 +0530, Shivaprasad G Bhat wrote:
> - /* 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++) {
> + if (def->controllers[i]->type != VIR_DOMAIN_CONTROLLER_TYPE_PCI ||
> + def->controllers[i]->model != VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT) {
> + continue;
> + }
> + nPCIHostBridges++;
> + }
Just to be on the safe side, we should probably make sure the
pci-root controller is actually a PHB by looking at modelName
as well, like:
for (i = 0; i < def->ncontrollers; i++) {
virDomainControllerDefPtr cont = def->controllers[i];
if (cont->type != VIR_DOMAIN_CONTROLLER_TYPE_PCI ||
cont->model != VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT ||
cont->opts.pciopts->modelName != VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_SPAPR_PCI_HOST_BRIDGE) {
continue;
}
nPCIHostBridges++;
}
Boy, that model name sure is a mouthful[1].
I think we might have enough occurrences of this pattern to
warrant the creation of a virDomainControllerIsPCIHostBridge()
helper function, which you could then use in your patch.
That said, it might be smarter to do so in a follow-up cleanup
commit in order not to invalidate existing Reviewed-by tags.
Laine, what would be your preference?
[1] Except for fingers. Fingerful?
--
Andrea Bolognani / Red Hat / Virtualization
More information about the libvir-list
mailing list