Re: [PATCH] lib/scatterlist: Provide a DMA page iterator
From: hch@xxxxxx
Date: Tue Jan 15 2019 - 10:20:33 EST
On Tue, Jan 15, 2019 at 03:24:55PM +0100, Christian König wrote:
> Yeah, indeed. Bounce buffers are an absolute no-go for GPUs.
>
> If the DMA API finds that a piece of memory is not directly accessible by
> the GPU we need to return an error and not try to use bounce buffers behind
> the surface.
>
> That is something which always annoyed me with the DMA API, which is
> otherwise rather cleanly defined.
That is exactly what I want to fix with my series to make
DMA_ATTR_NON_CONSISTENT more useful and always available:
https://lists.linuxfoundation.org/pipermail/iommu/2018-December/031985.html
With that you allocate the memory using dma_alloc_attrs with
DMA_ATTR_NON_CONSISTENT, and use dma_sync_single_* to transfer
ownership to the cpu and back to the device, with a gurantee that
there won't be any bouncing. So far the interest by the parties that
requested the feature has been rather lacklustre, though.