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