On 10/9/19 1:37 PM, Ayan Halder wrote: > On Tue, Sep 24, 2019 at 04:22:18PM +0000, Ayan Halder wrote: >> On Thu, Sep 19, 2019 at 10:21:52PM +0530, Sumit Semwal wrote: >>> Hello Christoph, everyone, >>> >>> On Sat, 7 Sep 2019 at 00:17, John Stultz <john.stultz@xxxxxxxxxx> wrote: >>>> >>>> Here is yet another pass at 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, since any such accounting >>>> should be implemented by dma-buf core or the heaps themselves. >>>> >>>> Most of the changes in this revision are adddressing the more >>>> concrete feedback from Christoph (many thanks!). Though I'm not >>>> sure if some of the less specific feedback was completely resolved >>>> in discussion last time around. Please let me know! >>> >>> It looks like most of the feedback has been taken care of. If there's >>> no more objection to this series, I'd like to merge it in soon. >>> >>> If there are any more review comments, may I request you to please provide them? >> >> I tested these patches using our internal test suite with Arm,komeda >> driver and the following node in dts >> >> reserved-memory { >> #address-cells = <0x2>; >> #size-cells = <0x2>; >> ranges; >> >> framebuffer@60000000 { >> compatible = "shared-dma-pool"; >> linux,cma-default; >> reg = <0x0 0x60000000 0x0 0x8000000>; >> }; >> } > Apologies for the confusion, this dts node is irrelevant as our tests were using > the cma heap (via /dev/dma_heap/reserved). > > That raises a question. How do we represent the reserved-memory nodes > (as shown above) via the dma-buf heaps framework ? The CMA driver that registers these nodes will have to be expanded to export them using this framework as needed. We do something similar to export SRAM nodes: https://lkml.org/lkml/2019/3/21/575 Unlike the system/default-cma driver which can be centralized in the tree, these extra exporters will probably live out in other subsystems and so are added in later steps. Andrew >> >> The tests went fine. Our tests allocates framebuffers of different >> sizes, posts them on screen and the driver writes back to one of the >> framebuffers. I havenot tested for any performance, latency or >> cache management related stuff. So, it that looks appropriate, feel >> free to add:- >> Tested-by:- Ayan Kumar Halder <ayan.halder@xxxxxxx> >> >> Are you planning to write some igt tests for it ? >>> >>>> >>>> New in v8: >>>> * Make struct dma_heap_ops consts (Suggested by Christoph) >>>> * Add flush_kernel_vmap_range/invalidate_kernel_vmap_range calls >>>> (suggested by Christoph) >>>> * Condense dma_heap_buffer and heap_helper_buffer (suggested by >>>> Christoph) >>>> * Get rid of needless struct system_heap (suggested by Christoph) >>>> * Fix indentation by using shorter argument names (suggested by >>>> Christoph) >>>> * Remove unused private_flags value >>>> * Add forgotten include file to fix build issue on x86 >>>> * Checkpatch whitespace fixups >>>> >>>> Thoughts and feedback would be greatly appreciated! >>>> >>>> thanks >>>> -john >>> Best, >>> Sumit. >>>> >>>> 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: 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 | 250 ++++++++++++++++ >>>> drivers/dma-buf/heaps/Kconfig | 14 + >>>> drivers/dma-buf/heaps/Makefile | 4 + >>>> drivers/dma-buf/heaps/cma_heap.c | 164 +++++++++++ >>>> drivers/dma-buf/heaps/heap-helpers.c | 269 ++++++++++++++++++ >>>> drivers/dma-buf/heaps/heap-helpers.h | 55 ++++ >>>> drivers/dma-buf/heaps/system_heap.c | 122 ++++++++ >>>> 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 | 230 +++++++++++++++ >>>> 14 files changed, 1262 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 >>>> >>> >>> >>> -- >>> Thanks and regards, >>> >>> Sumit Semwal >>> Linaro Consumer Group - Kernel Team Lead >>> Linaro.org │ Open source software for ARM SoCs >>> _______________________________________________ >>> dri-devel mailing list >>> dri-devel@xxxxxxxxxxxxxxxxxxxxx >>> https://lists.freedesktop.org/mailman/listinfo/dri-devel >> _______________________________________________ >> dri-devel mailing list >> dri-devel@xxxxxxxxxxxxxxxxxxxxx >> https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel