Hi Brian,
Thanks a lot for reviewing this patch.
I'm happy my humble proof-of-concept is able to spark some interest and raise some questions.
On Mon, 2020-08-17 at 16:18 +0100, Brian Starkey wrote:
Hi Ezequiel,
On Sun, Aug 16, 2020 at 02:22:46PM -0300, Ezequiel Garcia wrote:
This heap is basically a wrapper around DMA-API dma_alloc_attrs, which will allocate memory suitable for the given device.
The implementation is mostly a port of the Contiguous Videobuf2 memory allocator (see videobuf2/videobuf2-dma-contig.c) over to the DMA-BUF Heap interface.
The intention of this allocator is to provide applications with a more system-agnostic API: the only thing the application needs to know is which device to get the buffer for.
Whether the buffer is backed by CMA, IOMMU or a DMA Pool is unknown to the application.
I'm not really expecting this patch to be correct or even a good idea, but just submitting it to start a discussion on DMA-BUF heap discovery and negotiation.
My initial reaction is that I thought dmabuf heaps are meant for use to allocate buffers for sharing across devices, which doesn't fit very well with having per-device heaps.
That's true.
For single-device allocations, would using the buffer allocation functionality of that device's native API be better in most cases? (Some other possibly relevant discussion at [1])
That may be true for existing subsystems.
However, how about a new subsystem/API wanting to leverage the heap API and avoid exposing yet another allocator API?
And then, also, if we have an allocator API, perhaps we could imagine a future where applications would only need to worry about that, and not about each per-framework allocator.
I can see that this can save some boilerplate for devices that want to expose private chunks of memory, but might it also lead to 100 aliases for the system's generic coherent memory pool?
The idea (even if PoC) was to let drivers decide if they are special enough to add themselves (via dev_dma_heap_add).
Aliasing the heap would be ceratainly too much (although trying it for every device was a fun experiment to watch).
Thanks, Ezequiel
I wonder if a set of helpers to allow devices to expose whatever they want with minimal effort would be better.
Cheers, -Brian
Given Plumbers is just a couple weeks from now, I've submitted a BoF proposal to discuss this, as perhaps it would make sense to discuss this live?
Not-signed-off-by: Ezequiel Garcia ezequiel@collabora.com