Hi Lu, I really do like the switch to the per-device dma_map_ops, but:
On Thu, Aug 01, 2019 at 02:01:55PM +0800, Lu Baolu wrote: > Current Intel IOMMU driver sets the system level dma_ops. This > implementation has at least the following drawbacks: 1) each > dma API will go through the IOMMU driver even the devices are > using identity mapped domains; 2) if user requests to use an > identity mapped domain (a.k.a. bypass iommu translation), the > driver might fall back to dma domain blindly if the device is > not able to address all system memory. This is very clearly a behavioral regression. The intel-iommu driver has always used the iommu mapping to provide decent support for devices that do not have the full 64-bit addressing capability, and changing this will make a lot of existing setups go slower. I don't think having to use swiotlb for these devices helps anyone.