[PATCH v9 03/24] iommu: generalize the batched sync after map interface
Jason Gunthorpe
jgg at ziepe.ca
Wed Apr 23 10:15:37 PDT 2025
On Wed, Apr 23, 2025 at 11:12:54AM +0300, Leon Romanovsky wrote:
> From: Christoph Hellwig <hch at lst.de>
>
> For the upcoming IOVA-based DMA API we want to use the interface batch the
> sync after mapping multiple entries from dma-iommu without having a
> scatterlist.
Grammer:
For the upcoming IOVA-based DMA API we want to batch the
ops->iotlb_sync_map() call after mapping multiple IOVAs from
dma-iommu without having a scatterlist. Improve the API.
Add a wrapper for the map_sync as iommu_sync_map() so that callers don't
need to poke into the methods directly.
Formalize __iommu_map() into iommu_map_nosync() which requires the
caller to call iommu_sync_map() after all maps are completed.
Refactor the existing sanity checks from all the different layers
into iommu_map_nosync().
> drivers/iommu/iommu.c | 65 +++++++++++++++++++------------------------
> include/linux/iommu.h | 4 +++
> 2 files changed, 33 insertions(+), 36 deletions(-)
Reviewed-by: Jason Gunthorpe <jgg at nvidia.com>
> + /* Discourage passing strange GFP flags */
> + if (WARN_ON_ONCE(gfp & (__GFP_COMP | __GFP_DMA | __GFP_DMA32 |
> + __GFP_HIGHMEM)))
> + return -EINVAL;
There is some kind of overlap with the new iommu_alloc_pages_node()
here that does a similar check, nothing that can be addressed in this
series but maybe a TBD for later..
Jason
More information about the Linux-nvme
mailing list