[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOFGe94DnZcTb51TE3kFYxMgLkEWdNg2Yz3f4BEWNXz4GTOs7Q@mail.gmail.com>
Date: Tue, 10 Mar 2020 22:43:22 -0500
From: Jason Ekstrand <jason@...kstrand.net>
To: Christian König <christian.koenig@....com>
Cc: Bas Nieuwenhuizen <bas@...nieuwenhuizen.nl>,
Dave Airlie <airlied@...hat.com>,
Jesse Hall <jessehall@...gle.com>,
James Jones <jajones@...dia.com>,
Daniel Stone <daniels@...labora.com>,
Kristian Høgsberg <hoegsberg@...gle.com>,
Sumit Semwal <sumit.semwal@...aro.org>,
Chenbo Feng <fengc@...gle.com>,
Greg Hackmann <ghackmann@...gle.com>,
linux-media@...r.kernel.org,
Maling list - DRI developers
<dri-devel@...ts.freedesktop.org>, linaro-mm-sig@...ts.linaro.org,
LKML <linux-kernel@...r.kernel.org>,
Daniel Vetter <daniel.vetter@...ll.ch>
Subject: Re: [PATCH] RFC: dma-buf: Add an API for importing and exporting sync files
On Mon, Mar 9, 2020 at 11:21 AM Christian König
<christian.koenig@....com> wrote:
>
> Am 05.03.20 um 16:54 schrieb Jason Ekstrand:
> > On Thu, Mar 5, 2020 at 7:06 AM Christian König <christian.koenig@....com> wrote:
> >> [SNIP]
> >> Well as far as I can see this won't work because it would break the
> >> semantics of the timeline sync.
> > I'm not 100% convinced it has to. We already have support for the
> > seqno regressing and we ensure that we still wait for all the fences.
> > I thought maybe we could use that but I haven't spent enough time
> > looking at the details to be sure. I may be missing something.
>
> That won't work. The seqno regression works by punishing userspace for
> doing something stupid and undefined.
>
> Be we can't do that under normal circumstances.
>
> >> I can prototype that if you want, shouldn't be more than a few hours of
> >> hacking anyway.
> > If you'd like to, go for it. I'd be happy to give it a go as well but
> > if you already know what you want, it may be easier for you to just
> > write the patch for the cursor.
>
> Send you two patches for that a few minutes ago. But keep in mind that
> those are completely untested.
No worries. They were full of bugs but I think I've got them sorted
out now. The v2's I'm about to send seem to work. I'm going to leave
a Vulkan demo running all night long just to make sure I'm not leaking
memory like mad.
--Jason
> > Two more questions:
> >
> > 1. Do you want this collapsing to happen every time we create a
> > dma_fence_array or should it be a special entrypoint? Collapsing all
> > the time likely means doing extra array calculations instead of the
> > dma_fence_array taking ownership of the array that's passed in. My
> > gut says that cost is ok; but my gut doesn't spend much time in kernel
> > space.
>
> In my prototype implementation that is a dma_resv function you call and
> get either a single fence or a dma_fence_array with the collapsed fences
> in return.
>
> But I wouldn't add that to the general dma_fence_array_init function
> since this is still a rather special case. Well see the patches, they
> should be pretty self explaining.
>
> > 2. When we do the collapsing, should we call dma_fence_is_signaled()
> > to avoid adding signaled fences to the array? It seems like avoiding
> > adding references to fences that are already signaled would let the
> > kernel clean them up faster and reduce the likelihood that a fence
> > will hang around forever because it keeps getting added to arrays with
> > other unsignaled fences.
>
> I think so. Can't think of a good reason why we would want to add
> already signaled fences to the array.
>
> Christian.
>
> >
> > --Jason
>
Powered by blists - more mailing lists