Re: [RFC][PATCH 2/2] dma-buf: heaps: Fix the name used when exporting dmabufs to be the actual heap name
From: John Stultz
Date: Tue Feb 09 2021 - 01:07:37 EST
On Mon, Feb 8, 2021 at 10:03 PM Sumit Semwal <sumit.semwal@xxxxxxxxxx> wrote:
>
> Hi Daniel,
>
> On Tue, 9 Feb 2021 at 02:36, Daniel Vetter <daniel@xxxxxxxx> wrote:
> >
> > On Mon, Feb 8, 2021 at 9:51 PM John Stultz <john.stultz@xxxxxxxxxx> wrote:
> > > On Mon, Feb 8, 2021 at 2:08 AM Daniel Vetter <daniel@xxxxxxxx> wrote:
> > > > On Sat, Feb 06, 2021 at 05:47:48AM +0000, John Stultz wrote:
> > > > > By default dma_buf_export() sets the exporter name to be
> > > > > KBUILD_MODNAME. Unfortunately this may not be identical to the
> > > > > string used as the heap name (ie: "system" vs "system_heap").
> > > > >
> > > > > This can cause some minor confusion with tooling, and there is
> > > > > the future potential where multiple heap types may be exported
> > > > > by the same module (but would all have the same name).
> > > > >
> > > > > So to avoid all this, set the exporter exp_name to the heap name.
> > > > >
> > > > > Cc: Daniel Vetter <daniel@xxxxxxxx>
> > > > > Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
> > > > > Cc: Liam Mark <lmark@xxxxxxxxxxxxxx>
> > > > > Cc: Chris Goldsworthy <cgoldswo@xxxxxxxxxxxxxx>
> > > > > Cc: Laura Abbott <labbott@xxxxxxxxxx>
> > > > > Cc: Brian Starkey <Brian.Starkey@xxxxxxx>
> > > > > Cc: Hridya Valsaraju <hridya@xxxxxxxxxx>
> > > > > Cc: Suren Baghdasaryan <surenb@xxxxxxxxxx>
> > > > > Cc: Sandeep Patil <sspatil@xxxxxxxxxx>
> > > > > Cc: Daniel Mentz <danielmentz@xxxxxxxxxx>
> > > > > Cc: Ørjan Eide <orjan.eide@xxxxxxx>
> > > > > Cc: Robin Murphy <robin.murphy@xxxxxxx>
> > > > > Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
> > > > > Cc: Simon Ser <contact@xxxxxxxxxxx>
> > > > > Cc: James Jones <jajones@xxxxxxxxxx>
> > > > > Cc: linux-media@xxxxxxxxxxxxxxx
> > > > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> > > > > Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
> > > >
> > > > Looks reasonable to me.
> > > >
> > > > I guess the main worry is "does this mean heap names become uapi", in
> > > > which case I'm maybe not so sure anymore how this will tie into the
> > > > overall gpu memory accounting story.
> > > >
> > > > Since for dma-buf heaps one name per buffer is perfectly fine, since
> > > > dma-buf heaps aren't very dynamic. But on discrete gpu drivers buffers
> > > > move, so baking in the assumption that "exporter name = resource usage for
> > > > this buffer" is broken.
> > >
> > > I suspect I'm missing a subtlety in what you're describing. My sense
> > > of the exporter name doesn't account for a buffer's usage, it just
> > > describes what code allocated it and implicitly which dmabuf_ops
> > > handles it. Maybe could you give a more specific example of what
> > > you're hoping to avoid?
> >
> > Just paranoia really - on the linux side where we allocate most
> > buffers (even shared ones) with the driver, that allocator info isn't
> > that meaningful, it really just tells you which code
> > allocated/exported that dma-buf.
> >
> > But on Android, where all shared buffers come from specific heaps, it
> > is rather meaningful information. So I wondered whether e.g. the
> > android dmabuf debug tool uses that to collect per-heap stats, but
> > sounds like no right now. Plus with the chat we've had I think we have
> > a long-term plan for how to expose that information properly.
> >
> > > To me this patch is mostly just a consistency/least-surprise thing, so
> > > the heaps exporter name matches the string used for the heap's chardev
> > > device (the interface used to allocate it) in output like
> > > debugfs/dma_buf/bufinfo.
> >
> > Yeah for debug this makes sense. a-b: me if you want that somewhere on
> > the patches.
>
> Great that this got sorted; I'll apply both the patches of this series
> to drm-misc-next, with your a-b.
Before you do, let me spin a v2 as I got some minor tweaks needed
(using const char*) to fix the kbuild bot errors.
thanks
-john