public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH] drm/atomic: Call ww_acquire_done after check phase is complete
Date: Thu, 6 Aug 2015 15:07:52 +0200	[thread overview]
Message-ID: <20150806130752.GN17734@phenom.ffwll.local> (raw)
In-Reply-To: <55C2DFD8.7030508@linux.intel.com>

On Thu, Aug 06, 2015 at 06:17:28AM +0200, Maarten Lankhorst wrote:
> Op 06-08-15 om 00:25 schreef Daniel Vetter:
> > On Wed, Aug 5, 2015 at 8:13 PM, Maarten Lankhorst
> > <maarten.lankhorst@linux.intel.com> wrote:
> >> Op 05-08-15 om 17:03 schreef Daniel Vetter:
> >>> On Wed, Aug 5, 2015 at 4:57 PM, Maarten Lankhorst
> >>> <maarten.lankhorst@linux.intel.com> wrote:
> >>>> Op 05-08-15 om 15:08 schreef Daniel Vetter:
> >>>>> We want to make sure that no one tries to acquire more locks and
> >>>>> states, and ww mutexes provide debug facilities for that. So use them.
> >>>>>
> >>>>> Cc: Rob Clark <robdclark@gmail.com>
> >>>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >>>>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> >>>>> ---
> >>>>>  drivers/gpu/drm/drm_atomic.c | 2 ++
> >>>>>  1 file changed, 2 insertions(+)
> >>>> I like the idea, played with the thought myself, but I think it might need to be slightly less strict for transitional drivers.
> >>> What would blow up? This should only be called fairly late in the
> >>> transition when most of the atomic handling is correctly done. And
> >>> i915 is probably the most extreme example of a conversion, so if it
> >>> works out for us I think everyone else should be fine too.
> >> Might blow up with transitional helpers, though not 100% sure if it would.
> > Transitional helpers don't use the top-level atomic_commit/check entry
> > points and hence don't use this function here at all.
> >
> >> Also if atomic_check returns -EDEADLK you would still say acquire_done, that will definitely blow up in legitimate cases..
> >>
> >> If it doesn't blow up transitional helpers and you fix the -EDEADLK, acked-by. :-)
> > Yeah that needs to be fixed ;-)
> After some sleep I think only when ret == 0 we should call acquire_done.
> >>> Generally drivers only started to do fancy stuff with get_*_state once
> >>> converted to atomic to start exploiting it, not before the transition
> >>> is completed. i915 is different since we have a lot of our own modeset
> >> Should we electrify drm_atomic_get_{*}_state too, to force everyone to use the get_existing_state versions?
> > And I think this is the killer - we unconditionally take the locks
> > again, taking advantage of -EALREADY. But with this patch that will
> > blow and we need to patch up all the existing code to use the
> > get_existing_state functions. That will be a bigger series I guess ...
> Depends, this only happens when the object can not be found in the state the locks are taken for planes and crtc's.
> But it seems for connectors it happens unconditionally.
> > I'll make a note about this and defer this for now. But the
> > get_*_state vs. get_existing_*_state thing will actually make these
> > two functions more distinctive, so I think this patch here will be
> > really useful. But needs driver fixes and kerneldoc updates too.
> I think this is fine; grabbing existing state for crtc's and planes will work and grabbing new state during atomic_commit is a bug anyway.
> The only driver that uses drm_atomic_get_connector_state is i915, which uses it for the setup phase.

Yeah I've done a full audit too, everything seems to be fine.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-08-06 13:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-05 13:08 [PATCH] drm/atomic: Call ww_acquire_done after check phase is complete Daniel Vetter
2015-08-05 14:57 ` Maarten Lankhorst
2015-08-05 15:03   ` Daniel Vetter
2015-08-05 18:13     ` Maarten Lankhorst
2015-08-05 22:25       ` Daniel Vetter
2015-08-06  4:17         ` Maarten Lankhorst
2015-08-06 13:07           ` Daniel Vetter [this message]
2015-08-12  1:47 ` shuang.he
  -- strict thread matches above, loose matches on Subject: below --
2015-08-06 13:06 Daniel Vetter
2015-08-10 12:11 ` Daniel Vetter

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=20150806130752.GN17734@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=maarten.lankhorst@linux.intel.com \
    /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