On Fri, Mar 19, 2021 at 09:25:42PM +0800, John Garry wrote: > For streaming DMA mappings involving an IOMMU and whose IOVA len regularly > exceeds the IOVA rcache upper limit (meaning that they are not cached), > performance can be reduced. > > This is much more pronounced from commit 4e89dce72521 ("iommu/iova: Retry > from last rb tree node if iova search fails"), as discussed at [0]. > > IOVAs which cannot be cached are highly involved in the IOVA aging issue, > as discussed at [1]. I'm confused. If this a limit in the IOVA allocator, dma-iommu should be able to just not grow the allocation so larger without help from the driver. If contrary to the above description it is device-specific, the driver could simply use dma_get_max_seg_size().