[PATCH v4 7/7] dma-buf: system_heap: Add a system-uncached heap re-using the system heap

Hillf Danton hdanton at sina.com
Fri Oct 30 07:50:23 UTC 2020


On Thu, 29 Oct 2020 21:04:30 -0700 John Stultz wrote:
> 
> But I'll try to share my thoughts:
> 
> So the system heap allows for allocation of non-contiguous buffers
> (currently allocated from page_alloc), which we keep track using
> sglists.
> Since the resulting dmabufs are shared between multiple devices, we
> want to provide a *specific type of memory* (in this case
> non-contiguous system memory), rather than what the underlying
> dma_alloc_attr() allocates for a specific device.

If the memory slice(just a page for simple case) from
dma_alloc_attr(for device-A) does not work for device-B, nor can
page_alloc do the job imho.
> 
> My sense is dma_mmap_wc() likely ought to be paired with switching to
> using dma_alloc_wc() as well, which calls down to dma_alloc_attr().
> Maybe one could use dma_alloc_attr against the heap device to allocate
> chunks that we track in the sglist. But I'm not sure how that saves us
> much other than possibly swapping dma_mmap_wc() for remap_pfn_range()?


More information about the dri-devel mailing list