[PATCH 02/11] dma-buf/fence: add fence_array fences v6
Christian König
deathsimple at vodafone.de
Thu Jun 2 07:20:15 UTC 2016
Am 02.06.2016 um 00:44 schrieb Daniel Vetter:
> 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 at padovan.org> wrote:
>>> 2016-06-01 Christian König <deathsimple at vodafone.de>:
>>>
>>>> From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
>>>>
>>>> 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 at collabora.co.uk>
>>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>>> ---
>>>> 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 at collabora.co.uk>
>>>
>>> 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 at linaro.org>
>>
>> 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 and sorry for missing the commit message. I was a bit to
concentrated on fixing the code.
Leave me a note when the branch is public available, cause I then want
to rebase the amdgpu changes on top and send a pull request to Alex.
Christian.
>
> Thanks, Daniel
More information about the dri-devel
mailing list