public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <deathsimple@vodafone.de>
To: Gustavo Padovan <gustavo@padovan.org>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] dma-buf/fence: add fence_array fences v4
Date: Mon, 23 May 2016 13:29:11 +0200	[thread overview]
Message-ID: <5742E987.3030609@vodafone.de> (raw)
In-Reply-To: <20160523074149.GW27098@phenom.ffwll.local>

Am 23.05.2016 um 09:41 schrieb Daniel Vetter:
> On Fri, May 20, 2016 at 11:47:28AM -0300, Gustavo Padovan wrote:
>> 2016-05-20 Christian König <deathsimple@vodafone.de>:
>>
>>> From: Gustavo Padovan <gustavo.padovan@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.
>> This looks good to me. Dropping NO_CONTEXT was a good idea, also
>> registering only one callback makes it looks better.
> This will make it even harder to eventually add a real fence_context
> structure for tracking and debugging. I know you don't care for amdgpu
> since you have amdgpu-specific debug files, and there's some lifetime fun
> that makes it not immediately obvious how to resolve it.

Completely independent of my work on amdgpu I still think that it's not 
such a good idea to use a complex structure for the fence context.

Especially on SoCs and small embedded systems you probably don't want to 
overhead associated with that only for debugging purposes in a 
production environment.

> But on "lots of
> shitty little drivers" systems aka SoCs generic debugging information is
> crucial I think. Not liking too much where this is going.

Yeah I agree that generic debugging information is usually crucial, but 
the lifetime issues indeed can't be solved without reference counting 
and a hole bunch of overhead.

How about V5 of the patch I've just send out? Apart from fixing a few 
issues I've made the context and sequence number parameters of the 
fence_array object.

This way you don't need to always allocate a new context for each 
object, but just enough to keep your timelines straight.

E.g. you don't get a lot of contexts only used once. This is at least 
sufficient for my amdgpu use case.

Regards,
Christian.

> -Daniel

  reply	other threads:[~2016-05-23 11:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-20 13:56 [PATCH 1/2] dma-buf/fence: make fence context 64 bit v2 Christian König
2016-05-20 13:56 ` [PATCH 2/2] dma-buf/fence: add fence_array fences v4 Christian König
2016-05-20 14:42   ` Chris Wilson
2016-05-23  7:32     ` Christian König
2016-05-20 14:47   ` Gustavo Padovan
2016-05-20 17:53     ` Christian König
2016-05-23  7:41     ` Daniel Vetter
2016-05-23 11:29       ` Christian König [this message]
2016-05-23 14:00         ` Daniel Vetter
  -- strict thread matches above, loose matches on Subject: below --
2016-05-20 13:53 [PATCH 1/2] drm/amd/powerplay: fix bugs of checking if dpm is running on Tonga Christian König
2016-05-20 13:53 ` [PATCH 2/2] dma-buf/fence: add fence_array fences v4 Christian König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5742E987.3030609@vodafone.de \
    --to=deathsimple@vodafone.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gustavo@padovan.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox