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

From: John Stultz
Date: Thu Oct 17 2019 - 15:14:30 EST


On Wed, Oct 16, 2019 at 10:41 AM Andrew F. Davis <afd@xxxxxx> wrote:
> On 10/14/19 5:07 AM, Brian Starkey wrote:
> > Hi Andrew,
> >
> > On Wed, Oct 09, 2019 at 02:27:15PM -0400, Andrew F. Davis wrote:
> >> 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
> >
> > I was under the impression that the "cma_for_each_area" loop in patch
> > 4 would do that (add_cma_heaps). Is it not the case?
> >
>
> For these cma nodes yes, I thought you meant reserved memory areas in
> general.

Ok, sorry I didn't see this earlier, not only was I still dropped from
the To list, but the copy I got from dri-devel ended up marked as
spam.

> Just as a side note, I'm not a huge fan of the cma_for_each_area() to
> begin with, it seems a bit out of place when they could be selectively
> added as heaps as needed. Not sure how that will work with cma nodes
> specifically assigned to devices, seems like we could just steal their
> memory space from userspace with this..

So this would be a concern with ION as well, since it does the same
thing because being able to allocate from multiple CMA heaps for
device specific purpose is really useful.
And at least with dmabuf heaps each heap can be given its own
permissions so there's less likelihood for any abuse as you describe.

And it also allows various device cma nodes to still be allocated from
using the same interface (rather then having to use a custom driver
ioctl for each device).

But if the objection stands, do you have a proposal for an alternative
way to enumerate a subset of CMA heaps?

thanks
-john