On Tue, Oct 27, 2020 at 08:43:57AM +0000, Christoph Hellwig wrote: > On Wed, Oct 21, 2020 at 01:03:22PM -0300, Jason Gunthorpe wrote: > > Oh, interesting.. Yes the issue is no userspace DMA stuff uses the DMA > > API correctly (because it is in userspace) > > > > So SWIOTLB tricks don't work, I wish the dma_map could fail for these > > situations > > Userspace DMA by definition also does not use dma_map.. ? Sure it does, ib_dma_map_sg_attrs() is what RDMA uses What all the userspace users skip is the dma_sync*() - that would require a kernel call which defeats the point. So, my desire is some flag to dma_map_sg() that says 'user space mapping no dma_sync_*' ie dma_sync_* is a NOP Then things like SWIOTLB on the SEV system can fail with an error code instead of malfunctioning If FOLL_LONGERM is some estimate of this pattern then we have these users: - drivers/infiniband - v4l - vdpa - xdp - rds - habana labs Jason