[libvirt PATCH 3/4] qemu: account for mdev devices in getPPC64MemLockLimitBytes()
Daniel Henrique Barboza
danielhb413 at gmail.com
Wed Mar 24 12:29:14 UTC 2021
On 3/23/21 3:50 PM, Laine Stump wrote:
> This function is a specialized version of
> qemuDomainGetMemLockLimitBytes() for PPC64. Simplifying it in the same
> manner as the previous patch has the nice side effect of accounting
> for the possibility of an mdev device in the config.
>
> (I don't know if mdev devices are supported on PPC, but even if not
> then a) the additional check for mdev devices gained by using
> qemuDomainNeedsVFIO() in place of open coding will be an effective
> NOP, and b) if mdev devices are supported on PPC64 in the future, this
> function will be prepared for it).
PowerPC guest does not support mdev. I agree that there is no harm in
considering that this might change in the future though. One less piece
of code to change is always welcome.
Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
>
> Signed-off-by: Laine Stump <laine at redhat.com>
> ---
> src/qemu/qemu_domain.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 5238a52095..e0379e81ba 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -9122,7 +9122,6 @@ getPPC64MemLockLimitBytes(virDomainDefPtr def,
> unsigned long long passthroughLimit = 0;
> size_t i, nPCIHostBridges = 0;
> virPCIDeviceAddressPtr pciAddr;
> - bool usesVFIO = false;
> bool nvlink2Capable = false;
>
> for (i = 0; i < def->ncontrollers; i++) {
> @@ -9138,7 +9137,6 @@ getPPC64MemLockLimitBytes(virDomainDefPtr def,
> virDomainHostdevDefPtr dev = def->hostdevs[i];
>
> if (virHostdevIsVFIODevice(dev)) {
> - usesVFIO = true;
>
> pciAddr = &dev->source.subsys.u.pci.addr;
> if (virPCIDeviceAddressIsValid(pciAddr, false)) {
> @@ -9153,9 +9151,6 @@ getPPC64MemLockLimitBytes(virDomainDefPtr def,
> }
> }
>
> - if (virDomainDefHasNVMeDisk(def))
> - usesVFIO = true;
> -
> memory = virDomainDefGetMemoryTotal(def);
>
> if (def->mem.max_memory)
> @@ -9180,7 +9175,7 @@ getPPC64MemLockLimitBytes(virDomainDefPtr def,
> 8192;
>
> /* NVLink2 support in QEMU is a special case of the passthrough
> - * mechanics explained in the usesVFIO case below. The GPU RAM
> + * mechanics explained in the forceVFIO case below. The GPU RAM
> * is placed with a gap after maxMemory. The current QEMU
> * implementation puts the NVIDIA RAM above the PCI MMIO, which
> * starts at 32TiB and is the MMIO reserved for the guest main RAM.
> @@ -9204,7 +9199,7 @@ getPPC64MemLockLimitBytes(virDomainDefPtr def,
> passthroughLimit = maxMemory +
> 128 * (1ULL<<30) / 512 * nPCIHostBridges +
> 8192;
> - } else if (usesVFIO || forceVFIO) {
> + } else if (forceVFIO || qemuDomainNeedsVFIO(def)) {
> /* For regular (non-NVLink2 present) VFIO passthrough, the value
> * of passthroughLimit is:
> *
>
More information about the libvir-list
mailing list