Re: [PATCH] drm/i915: Don't die in wait_for_pending_flips

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 19, 2014 at 08:06:06AM -0700, Jesse Barnes wrote:
> On Mon, 19 May 2014 16:09:35 +0200
> Daniel Vetter <daniel.vetter@xxxxxxxx> wrote:
> 
> > We can apperently miss them, but breaking the entire driver hampers
> > testing. So bail out after one minute, our customerary "this is a lost
> > cause" timeout.
> > 
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=78383
> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
> > ---
> >  drivers/gpu/drm/i915/intel_display.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 0f8f9bcb3012..6eca24d8b282 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -3284,8 +3284,9 @@ static void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc)
> >  
> >  	WARN_ON(waitqueue_active(&dev_priv->pending_flip_queue));
> >  
> > -	wait_event(dev_priv->pending_flip_queue,
> > -		   !intel_crtc_has_pending_flip(crtc));
> > +	WARN_ON(wait_event_timeout(dev_priv->pending_flip_queue,
> > +				   !intel_crtc_has_pending_flip(crtc),
> > +				   60*HZ) == 0);
> >  
> >  	mutex_lock(&dev->struct_mutex);
> >  	intel_finish_fb(crtc->primary->fb);
> 
> Updating our page flip ioctl man page (hah!) with the timeout info
> would be good, in case people like Mario queue flips for after lunch. :)

We don't do that in the kernel though, we only ever queue flips for the
next vblank after rendering completed. Completed rendering we can detect
(and have 60s timeouts in other places where the hangcheck isn't
guaranteed to be around already), the additional vblank is negligible imo.

Of course if we add support for flip queues in the kernel we might need to
cancel outstanding flips properly when we kill the crtc, like we already
do for vblank events.

So imo no need to document anything.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux