Hello, Under certain circumstances, a MMIO region of a device fails to map because the region is outside the supported IOVA ranges of the VM. In this case, PCI peer-to-peer transactions on BARs are not supported. This typically occurs when the IOMMU address space width is less than the physical address width, as can be the case on consumer processors or when using a vIOMMU device with default settings.
This series tries to clarify the error message reported to the user and provide advice on how to possibly resolve this issue. Thanks, C. Cédric Le Goater (5): vfio/pci: Replace "iommu_device" by "vIOMMU" vfio: Modify vfio_viommu_preset() parameter vfio: Improve error reporting when MMIO region mapping fails cpu: Introduce cpu_get_phys_bits() vfio: Check compatibility of CPU and IOMMU address space width include/hw/core/cpu.h | 9 ++++++ include/hw/core/sysemu-cpu-ops.h | 6 ++++ include/hw/vfio/vfio-common.h | 2 +- cpu-target.c | 5 ++++ hw/core/cpu-system.c | 11 ++++++++ hw/vfio/common.c | 47 +++++++++++++++++++++++++++++--- hw/vfio/migration.c | 2 +- hw/vfio/pci.c | 2 +- target/i386/cpu.c | 6 ++++ 9 files changed, 83 insertions(+), 7 deletions(-) -- 2.48.1