Not to me. In the p2pdma code we specifically program DMA engines
the PCI bus address.
Ah yes of course. Brain fart on my part. We are not programming the P2PDMA initiator with
an IOVA but with the PCI bus address...
So regardless of whether we are using the IOMMU or
not, the packets will be forwarded directly to the peer. If the ACS
Redir bits are on they will be forced back to the RC by the switch and
the transaction will fail. If we clear the ACS bits, the TLPs will go
where we want and everything will work (but we lose the isolation of ACS).
For EPs that support ATS, we should (but don't necessarily
program them with the IOVA address so they can go through the
translation process which will allow P2P without disabling the ACS Redir
bits -- provided the ACS direct translation bit is set. (And btw, if it
is, then we lose the benefit of ACS protecting against malicious EPs).
But, per above, the ATS transaction should involve only the IOVA address
so the ACS bits not being set should not break ATS.
Well we would still have to clear some ACS bits but now we can clear only for translated