[PATCH v12 0/5] DMA-BUF Heaps (destaging ION)
sumit.semwal at linaro.org
Fri Oct 18 06:21:51 UTC 2019
Hi John, Andrews,
On Fri, 18 Oct 2019 at 10:53, John Stultz <john.stultz at linaro.org> wrote:
> Andrew brought up a reasonable concern with the CMA heap
> enumeration in the previous patch set, and I had a few other
> minor cleanups to add, so 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.
Thanks much for all your hardwork in getting these patches ready. It
looks like a sane approach to me to first just add the default cma
heap and work out the selection of other heaps later on.
I will wait out this weekend for any objections from others, and if I
hear none, will merge this series on Monday.
Hope that sounds reasonable?
> The patchset implements per-heap devices which can be opened
> directly and then an ioctl is used to allocate a dmabuf from the
> 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:
> And the userspace changes here:
> 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
> New in v12:
> * To address Andrew's concern about adding all CMA areas, the
> CMA heap only adds the default CMA region for now.
> * Minor cleanups and prep for loading heaps from modules
> * I have patches to add other specified CMA regions, as well as
> loading heaps from modules in my WIP tree, which I will submit
> once this set is queued, here:
More information about the dri-devel