Le lun. 13 mai 2019 à 20:37, John Stultz <john.stultz@xxxxxxxxxx> a écrit : > > Here is another RFC of the dma-buf heaps patchset Andrew and I > have been working on which tries to destage a fair chunk of ION > functionality. > > 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 > > 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 for now, since any such > accounting should be implemented by dma-buf core or the heaps > themselves. > > > New in v4: > * Add fd_flags per Benjamin's request to specify the creation > flags for the dmabuf fd. > * Added some optimization in the system heap to allocate > contiguous pages where possible. > * Reworked the kselftest code to use vgem rather then > introducing a dummy importer > * Other cleanups suggested by Benjamin and Andrew. > > > Outstanding concerns: > * Need to better understand various secure heap implementations. > Some concern that heap private flags will be needed, but its > also possible that dma-buf heaps can't solve everyone's needs, > in which case, a vendor's secure buffer driver can implement > their own dma-buf exporter. > * Making sure the performance issues from potentially > unnecessary cache-management operations can be resolved > properly for system and cma heaps(outstanding issue from ION). > > > That said, the main user-interface is shaping up and I wanted > to get some input on the device model (particularly from GreKH) > and any other API/ABI specific input. > For the whole series: Reviewed-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx> Thanks, Benjamin > 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: Xu YiPing <xuyiping@xxxxxxxxxxxxx> > Cc: "Chenfeng (puck)" <puck.chen@xxxxxxxxxxxxx> > Cc: butao <butao@xxxxxxxxxxxxx> > Cc: "Xiaqing (A)" <saberlily.xia@xxxxxxxxxxxxx> > Cc: Yudongbin <yudongbin@xxxxxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: Chenbo Feng <fengc@xxxxxxxxxx> > Cc: Alistair Strachan <astrachan@xxxxxxxxxx> > 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 | 10 + > drivers/dma-buf/Makefile | 2 + > drivers/dma-buf/dma-heap.c | 241 ++++++++++++++++ > drivers/dma-buf/heaps/Kconfig | 14 + > drivers/dma-buf/heaps/Makefile | 4 + > drivers/dma-buf/heaps/cma_heap.c | 169 ++++++++++++ > drivers/dma-buf/heaps/heap-helpers.c | 261 ++++++++++++++++++ > drivers/dma-buf/heaps/heap-helpers.h | 55 ++++ > drivers/dma-buf/heaps/system_heap.c | 162 +++++++++++ > include/linux/dma-heap.h | 59 ++++ > include/uapi/linux/dma-heap.h | 56 ++++ > tools/testing/selftests/dmabuf-heaps/Makefile | 11 + > .../selftests/dmabuf-heaps/dmabuf-heap.c | 232 ++++++++++++++++ > 14 files changed, 1294 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 > > -- > 2.17.1 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel