Re: [PATCH v13 0/5] DMA-BUF Heaps (destaging ION)

From: Neil Armstrong
Date: Tue Oct 22 2019 - 04:21:25 EST


Hi John,

On 21/10/2019 21:03, John Stultz wrote:
> Lucky number 13! :)
>
> Last week in v12 I had re-added some symbol exports to support
> later patches I have pending to enable loading heaps from
> modules. He reminded me that back around v3 (its been awhile!) I
> had removed those exports due to concerns about the fact that we
> don't support module removal.
>
> So I'm respinning the patches, removing the exports again. I'll
> submit a patch to re-add them in a later series enabling moduels
> which can be reviewed indepently.
>
> With that done, lets get on to the boilerplate!
>
> The patchset implements per-heap devices which can be opened
> directly and then an ioctl is used to allocate a dmabuf from the
> heap.
>
> The interface is similar, but much simpler then IONs, only
> providing an ALLOC ioctl.
>
> Also, I've provided relatively simple system and cma heaps.
>
> I've booted and tested these patches with AOSP on the HiKey960
> using the kernel tree here:
> https://git.linaro.org/people/john.stultz/android-dev.git/log/?h=dev/dma-buf-heap

Do you have a 4.19 tree with the changes ? I tried but the xarray idr replacement
is missing... so I can't test with our android-amlogic-bmeson-4.19 tree.

If you can provide, I'll be happy to test the serie and the gralloc changes.

Neil

>
> And the userspace changes here:
> https://android-review.googlesource.com/c/device/linaro/hikey/+/909436
>
> Compared to ION, this patchset is missing the system-contig,
> carveout and chunk heaps, as I don't have a device that uses
> those, so I'm unable to do much useful validation there.
> Additionally we have no upstream users of chunk or carveout,
> and the system-contig has been deprecated in the common/andoid-*
> kernels, so this should be ok.
>
> I've also removed the stats accounting, since any such
> accounting should be implemented by dma-buf core or the heaps
> themselves.
>
> New in v13:
> * Re-remove symbol exports, per discussion with Brian. I'll
> resubmit these separately in a later patch so they can be
> independently reviewed
>
> thanks
> -john
>
> Cc: Laura Abbott <labbott@xxxxxxxxxx>
> Cc: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx>
> Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
> Cc: Liam Mark <lmark@xxxxxxxxxxxxxx>
> Cc: Pratik Patel <pratikp@xxxxxxxxxxxxxx>
> Cc: Brian Starkey <Brian.Starkey@xxxxxxx>
> Cc: Vincent Donnefort <Vincent.Donnefort@xxxxxxx>
> Cc: Sudipto Paul <Sudipto.Paul@xxxxxxx>
> Cc: Andrew F. Davis <afd@xxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> Cc: Chenbo Feng <fengc@xxxxxxxxxx>
> Cc: Alistair Strachan <astrachan@xxxxxxxxxx>
> Cc: Hridya Valsaraju <hridya@xxxxxxxxxx>
> Cc: Hillf Danton <hdanton@xxxxxxxx>
> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
>
>
>
> Andrew F. Davis (1):
> dma-buf: Add dma-buf heaps framework
>
> John Stultz (4):
> dma-buf: heaps: Add heap helpers
> dma-buf: heaps: Add system heap to dmabuf heaps
> dma-buf: heaps: Add CMA heap to dmabuf heaps
> kselftests: Add dma-heap test
>
> MAINTAINERS | 18 ++
> drivers/dma-buf/Kconfig | 11 +
> drivers/dma-buf/Makefile | 2 +
> drivers/dma-buf/dma-heap.c | 269 ++++++++++++++++++
> drivers/dma-buf/heaps/Kconfig | 14 +
> drivers/dma-buf/heaps/Makefile | 4 +
> drivers/dma-buf/heaps/cma_heap.c | 178 ++++++++++++
> drivers/dma-buf/heaps/heap-helpers.c | 268 +++++++++++++++++
> drivers/dma-buf/heaps/heap-helpers.h | 55 ++++
> drivers/dma-buf/heaps/system_heap.c | 124 ++++++++
> include/linux/dma-heap.h | 59 ++++
> include/uapi/linux/dma-heap.h | 55 ++++
> tools/testing/selftests/dmabuf-heaps/Makefile | 9 +
> .../selftests/dmabuf-heaps/dmabuf-heap.c | 238 ++++++++++++++++
> 14 files changed, 1304 insertions(+)
> create mode 100644 drivers/dma-buf/dma-heap.c
> create mode 100644 drivers/dma-buf/heaps/Kconfig
> create mode 100644 drivers/dma-buf/heaps/Makefile
> create mode 100644 drivers/dma-buf/heaps/cma_heap.c
> create mode 100644 drivers/dma-buf/heaps/heap-helpers.c
> create mode 100644 drivers/dma-buf/heaps/heap-helpers.h
> create mode 100644 drivers/dma-buf/heaps/system_heap.c
> create mode 100644 include/linux/dma-heap.h
> create mode 100644 include/uapi/linux/dma-heap.h
> create mode 100644 tools/testing/selftests/dmabuf-heaps/Makefile
> create mode 100644 tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c
>