2018-03-27 1:03 GMT+02:00 Alexander Duyck <alexander.du...@gmail.com>: > On Mon, Mar 26, 2018 at 3:54 PM, Tushar Dave <tushar.n.d...@oracle.com> wrote: [...] >> >> Whats the implication here. Should IOMMU be disabled? >> I'm asking because I do see a huge difference while running pktgen test for >> my performance benchmarks, with and without intel_iommu. >> >> >> -Tushar > > For the Intel parts the IOMMU can be expensive primarily for Tx, since > it should have minimal impact if the Rx pages are pinned/recycled. I > am assuming the same is true here for AF_XDP, Bjorn can correct me if > I am wrong. >
For the non-zc case the DMA mapping is done in the Tx fast path, so there, as Alex says, you'll definitely see a performance penalty. For Rx the page-recycle mechanism (Intel drivers) usally avoids doing any DMA mappings in the fast-path. As for AF_XDP zerocopy mode, we do the DMA mapping up front (avoiding the single-use mappings), to avoid that performance hit. Keep in mind, though, that the IOTLB is still in play, and usually performs worse under pressure, than the non-IOMMU case. > Basically the IOMMU can make creating/destroying a DMA mapping really > expensive. The easiest way to work around it in the case of the Intel > IOMMU is to boot with "iommu=pt" which will create an identity mapping > for the host. The downside is though that you then have the entire > system accessible to the device unless a new mapping is created for it > by assigning it to a new IOMMU domain. > > Thanks. > > - Alex