On Wed, Jun 11, 2025 at 01:41:54PM -0600, Logan Gunthorpe wrote: > > Is there some other mechansim that ensures a host memory mapped IOVA > > doesn't collide with a PCI bus address then? > > Yes, in the absence of a switch with ACS protection this can be a problem. > > I haven't looked at this in a long time, but the iommu drivers reserve > regions where the PCI addresses are valid so no iova will be allocated > with a similar bus address. After a quick search, I believe today, this > is handled by iova_reserve_pci_windows(). Exactly. Fun side story: the CMB decoding for commands in the NVMe spec relies on this to not corrupt data as it tries to match an IOVA against a PCI bus addresses. A certain very big hypervisor vendor did not reserve the space like this and it caused data corruption due to this broken nvme feature.