linux-stable/kernel/dma
John Garry f3e7d9471c dma-mapping: add dma_opt_mapping_size()
[ Upstream commit a229cc14f3 ]

Streaming DMA mapping involving an IOMMU may be much slower for larger
total mapping size. This is because every IOMMU DMA mapping requires an
IOVA to be allocated and freed. IOVA sizes above a certain limit are not
cached, which can have a big impact on DMA mapping performance.

Provide an API for device drivers to know this "optimal" limit, such that
they may try to produce mapping which don't exceed it.

Signed-off-by: John Garry <john.garry@huawei.com>
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Stable-dep-of: afc5aa46ed ("iommu/dma: Force swiotlb_max_mapping_size on an untrusted device")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-10 16:18:47 +02:00
..
coherent.c dma-mapping: clear dev->dma_mem to NULL after freeing it 2024-01-25 14:52:38 -08:00
contiguous.c
debug.c dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock 2023-10-06 13:18:14 +02:00
debug.h
direct.c dma-direct: use the correct size for dma_set_encrypted() 2022-06-29 09:03:31 +02:00
direct.h
dummy.c
Kconfig
Makefile
map_benchmark.c
mapping.c dma-mapping: add dma_opt_mapping_size() 2024-04-10 16:18:47 +02:00
ops_helpers.c
pool.c
remap.c dma-remap: use kvmalloc_array/kvfree for larger dma memory remap 2023-08-26 14:23:22 +02:00
swiotlb.c swiotlb: Fix alignment checks when both allocation and DMA masks are present 2024-04-10 16:18:47 +02:00