[PATCH v9 03/24] iommu: generalize the batched sync after map interface

Leon Romanovsky leon at kernel.org
Wed Apr 23 23:55:11 PDT 2025


On Wed, Apr 23, 2025 at 02:15:37PM -0300, Jason Gunthorpe wrote:
> 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..

This series is based on pure -rc1 to allow creation of shared branch,
while you removed iommu_alloc_pages_node() in IOMMU tree. So we must
merge it first and tidy the code after that.

Thanks

> 
> Jason
> 



More information about the Linux-nvme mailing list