Re: [PATCH 02/11] dma-buf/fence: add fence_array fences v6

From: Daniel Vetter
Date: Wed Jun 01 2016 - 18:44:59 EST


On Wed, Jun 01, 2016 at 09:54:04PM +0530, Sumit Semwal wrote:
> Hi Christian, Gustavo,
>
> Thanks for these patches.
>
> On 1 June 2016 at 20:55, Gustavo Padovan <gustavo@xxxxxxxxxxx> wrote:
> > 2016-06-01 Christian König <deathsimple@xxxxxxxxxxx>:
> >
> >> From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
> >>
> >> struct fence_collection inherits from struct fence and carries a
> >> collection of fences that needs to be waited together.
> >>
> >> It is useful to translate a sync_file to a fence to remove the complexity
> >> of dealing with sync_files on DRM drivers. So even if there are many
> >> fences in the sync_file that needs to waited for a commit to happen,
> >> they all get added to the fence_collection and passed for DRM use as
> >> a standard struct fence.
> >>
> >> That means that no changes needed to any driver besides supporting fences.
> >>
> >> fence_collection's fence doesn't belong to any timeline context, so
> >> fence_is_later() and fence_later() are not meant to be called with
> >> fence_collections fences.
> >>
> >> v2: Comments by Daniel Vetter:
> >> - merge fence_collection_init() and fence_collection_add()
> >> - only add callbacks at ->enable_signalling()
> >> - remove fence_collection_put()
> >> - check for type on to_fence_collection()
> >> - adjust fence_is_later() and fence_later() to WARN_ON() if they
> >> are used with collection fences.
> >>
> >> v3: - Initialize fence_cb.node at fence init.
> >>
> >> Comments by Chris Wilson:
> >> - return "unbound" on fence_collection_get_timeline_name()
> >> - don't stop adding callbacks if one fails
> >> - remove redundant !! on fence_collection_enable_signaling()
> >> - remove redundant () on fence_collection_signaled
> >> - use fence_default_wait() instead
> >>
> >> v4 (chk): Rework, simplification and cleanup:
> >> - Drop FENCE_NO_CONTEXT handling, always allocate a context.
> >> - Rename to fence_array.
> >> - Return fixed driver name.
> >> - Register only one callback at a time.
> >> - Document that create function takes ownership of array.
> >>
> >> v5 (chk): More work and fixes:
> >> - Avoid deadlocks by adding all callbacks at once again.
> >> - Stop trying to remove the callbacks.
> >> - Provide context and sequence number for the array fence.
> >>
> >> v6 (chk): Fixes found during testing
> >> - Fix stupid typo in _enable_signaling().
> >>
> >> Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
> >> Signed-off-by: Christian König <christian.koenig@xxxxxxx>
> >> ---
> >> drivers/dma-buf/Makefile | 2 +-
> >> drivers/dma-buf/fence-array.c | 127 ++++++++++++++++++++++++++++++++++++++++++
> >> include/linux/fence-array.h | 72 ++++++++++++++++++++++++
> >> 3 files changed, 200 insertions(+), 1 deletion(-)
> >> create mode 100644 drivers/dma-buf/fence-array.c
> >> create mode 100644 include/linux/fence-array.h
> >
> > This is working fine to me. Once the commit message is fixed:
> >
> > Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
> >
> > You need to Cc Sumit here to decide who is picking these patches.
> > It would be better to get them through the drm trees so we would need
> > his Ack at least.
> >
> +1 on the commit message consistency change; post that, please feel
> free to add my
> Acked-by: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
>
> for the 3 dma-buf/fences patches and request to take them via DRM tree
> as rightly suggested by Gustavo.

Commit message improved and all 3 queued up for drm-misc. I haven't pushed
out the new branch yet though, since I'm waiting for Dave to open drm-next
and pull in a few other bits first so that I can rebase.

Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch