On 2019-06-24 7:55 a.m., Jason Gunthorpe wrote: > On Mon, Jun 24, 2019 at 03:50:24PM +0200, Christoph Hellwig wrote: >> On Mon, Jun 24, 2019 at 10:46:41AM -0300, Jason Gunthorpe wrote: >>> BTW, it is not just offset right? It is possible that the IOMMU can >>> generate unique dma_addr_t values for each device?? Simple offset is >>> just something we saw in certain embedded cases, IIRC. >> >> Yes, it could. If we are trying to do P2P between two devices on >> different root ports and with the IOMMU enabled we'll generate >> a new bus address for the BAR on the other side dynamically everytime >> we map. > > Even with the same root port if ACS is turned on could behave like this. Yup. > It is only a very narrow case where you can take shortcuts with > dma_addr_t, and I don't think shortcuts like are are appropriate for > the mainline kernel.. I don't think it's that narrow and it opens up a lot of avenues for system design that people are wanting to go. If your high speed data path can avoid the root complex and CPU, you can design a system which a much smaller CPU and fewer lanes directed at the CPU. Logan