[EARLY RFC][PATCH 0/4] dmabuf pools infrastructure (destaging ION)

John Stultz john.stultz at linaro.org
Thu Feb 21 07:40:26 UTC 2019


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 <labbott at redhat.com>
Cc: Benjamin Gaignard <benjamin.gaignard at linaro.org>
Cc: Sumit Semwal <sumit.semwal at linaro.org>
Cc: Liam Mark <lmark at codeaurora.org>
Cc: Brian Starkey <Brian.Starkey at arm.com>
Cc: Andrew F. Davis <afd at ti.com>
Cc: Chenbo Feng <fengc at google.com>
Cc: Alistair Strachan <astrachan at google.com>
Cc: dri-devel at 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



More information about the dri-devel mailing list