On Wed, Nov 12, 2025 at 08:30:05AM -0700, Alex Williamson wrote: > On Tue, 11 Nov 2025 10:48:23 -0800 > Alex Mastro <[email protected]> wrote: > > > Not all IOMMUs support the same virtual address width as the processor, > > for instance older Intel consumer platforms only support 39-bits of > > IOMMU address space. On such platforms, using the virtual address as the > > IOVA and mappings at the top of the address space both fail. > > > > VFIO and IOMMUFD have facilities for retrieving valid IOVA ranges, > > VFIO_IOMMU_TYPE1_INFO_CAP_IOVA_RANGE and IOMMU_IOAS_IOVA_RANGES, > > respectively. These provide compatible arrays of ranges from which we > > can construct a simple allocator. > > > > Use this new allocator in place of reusing the virtual address, and > > incorporate the maximum supported IOVA into the limit testing. This > > latter change doesn't test quite the same absolute end-of-address space > > behavior but still seems to have some value. > > > > This series is based on Alex Williamson's "Incorporate IOVA range info" > > [1] along with feedback from the discussion in David Matlack's "Skip > > vfio_dma_map_limit_test if mapping returns -EINVAL" [2]. > > > > Given David's plans to split IOMMU concerns from devices as described > > in [3], this series' home for `struct iova_allocator` and IOVA > > range helpers are likely to be short lived, since they reside in > > vfio_pci_device.c. I assume that the rework can move this functionality > > to a more appropriate location next to other IOMMU-focused code, once > > such a place exists. > > > > [1] https://lore.kernel.org/all/[email protected]/#t > > [2] > > https://lore.kernel.org/all/[email protected]/ > > [3] https://lore.kernel.org/all/[email protected]/ > > > > To: Alex Williamson <[email protected]> > > To: David Matlack <[email protected]> > > To: Shuah Khan <[email protected]> > > To: Jason Gunthorpe <[email protected]> > > Cc: [email protected] > > Cc: [email protected] > > Cc: [email protected] > > Signed-off-by: Alex Mastro <[email protected]> > > > > Changes in v3: > > - Update capability chain cycle detection > > - Clarify the iova=vaddr commit message > > - Link to v2: > > https://lore.kernel.org/r/[email protected] > > Applied to vfio for-linus branch for v6.18. Thanks for the quick > resolution on this!
No problem, thanks for the reviews! > > Alex

