On 2/6/25 14:14, Cédric Le Goater wrote:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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 some Intel consumer
processors or when using a vIOMMU device with default settings.

This series tries to clarify the error message reported to the user.

Thanks,

C.

Changes in v3:

  - Fixed warn_report_err_once()
  - Improved commit logs a bit
  - Dropped check on compatibility of CPU and IOMMU address space
    width. Will address later in its own series.

Changes in v2:

  - Removed advice on how to resolve the issue. Diagnostic is enough.
  - Introduced helpers
  - Checked device type, since this only applies to PCI
  - Added cleanup
Cédric Le Goater (7):
   util/error: Introduce warn_report_err_once()
   vfio/pci: Replace "iommu_device" by "vIOMMU"
   vfio: Rephrase comment in vfio_listener_region_add() error path
   vfio: Introduce vfio_get_vfio_device()
   vfio: Improve error reporting when MMIO region mapping fails
   vfio: Remove reports of DMA mapping errors in backends
   vfio: Remove superfluous error report in vfio_listener_region_add()

  include/hw/vfio/vfio-common.h |  1 +
  include/qapi/error.h          | 12 +++++++++++
  backends/iommufd.c            |  3 ---
  hw/vfio/common.c              | 40 +++++++++++++++++++++++++----------
  hw/vfio/container.c           |  2 --
  hw/vfio/helpers.c             | 10 +++++++++
  hw/vfio/pci.c                 |  2 +-
  util/error.c                  | 11 ++++++++++
  8 files changed, 64 insertions(+), 17 deletions(-)



Applied to vfio-next.

Thanks,

C.



Reply via email to