Here is a very early peek at my dmabuf pools patchset, which tries to destage a fair chunk of ION functionality.
This build and boots, but I've not gotten to testing the actual pool devices yet (need to write some kselftests)! I just wanted some early feedback on the overall direction. The patchset implements per-pool devices (extending my ion per-heap devices patchset from last week), which can be opened directly and then an ioctl is used to allocate a dmabuf from the pool. The interface is similar, but simpler then IONs, only providing an ALLOC ioctl. Also, I've only destaged the system/system-contig and cma pools, since the ION carveout and chunk heaps depended on out of tree board files to initialize those heaps. I'll leave that to folks who are actually using those heaps. Let me know what you think! thanks -john Cc: Laura Abbott <labb...@redhat.com> Cc: Benjamin Gaignard <benjamin.gaign...@linaro.org> Cc: Sumit Semwal <sumit.sem...@linaro.org> Cc: Liam Mark <lm...@codeaurora.org> Cc: Brian Starkey <brian.star...@arm.com> Cc: Andrew F. Davis <a...@ti.com> Cc: Chenbo Feng <fe...@google.com> Cc: Alistair Strachan <astrac...@google.com> Cc: dri-devel@lists.freedesktop.org John Stultz (4): dma-buf: Add dma-buf pools framework dma-buf: pools: Add page-pool for dma-buf pools dma-buf: pools: Add system/system-contig pools to dmabuf pools dma-buf: pools: Add CMA pool to dmabuf pools MAINTAINERS | 13 + drivers/dma-buf/Kconfig | 2 + drivers/dma-buf/Makefile | 1 + drivers/dma-buf/pools/Kconfig | 25 ++ drivers/dma-buf/pools/Makefile | 4 + drivers/dma-buf/pools/cma_pool.c | 143 ++++++++ drivers/dma-buf/pools/dmabuf-pools.c | 670 +++++++++++++++++++++++++++++++++++ drivers/dma-buf/pools/dmabuf-pools.h | 295 +++++++++++++++ drivers/dma-buf/pools/page_pool.c | 157 ++++++++ drivers/dma-buf/pools/pool-helpers.c | 317 +++++++++++++++++ drivers/dma-buf/pools/pool-ioctl.c | 94 +++++ drivers/dma-buf/pools/system_pool.c | 374 +++++++++++++++++++ include/uapi/linux/dmabuf-pools.h | 59 +++ 13 files changed, 2154 insertions(+) create mode 100644 drivers/dma-buf/pools/Kconfig create mode 100644 drivers/dma-buf/pools/Makefile create mode 100644 drivers/dma-buf/pools/cma_pool.c create mode 100644 drivers/dma-buf/pools/dmabuf-pools.c create mode 100644 drivers/dma-buf/pools/dmabuf-pools.h create mode 100644 drivers/dma-buf/pools/page_pool.c create mode 100644 drivers/dma-buf/pools/pool-helpers.c create mode 100644 drivers/dma-buf/pools/pool-ioctl.c create mode 100644 drivers/dma-buf/pools/system_pool.c create mode 100644 include/uapi/linux/dmabuf-pools.h -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel