[Intel-gfx] [PATCH 01/10] drm/i915: Check for a stalled page flip after each vblank

Chris Wilson chris at chris-wilson.co.uk
Tue Sep 2 17:07:36 CEST 2014


On Tue, Sep 02, 2014 at 04:52:54PM +0200, Daniel Vetter wrote:
> On Tue, Sep 02, 2014 at 02:57:36PM +0100, Chris Wilson wrote:
> > Long ago, back in the racy haydays of 915gm interrupt handling, page
> > flips would occasionally go astray and leave the hardware stuck, and the
> > display not updating. This annoyed people who relied on their systems
> > being able to display continuously updating information 24/7, and so
> > some code to detect when the driver missed the page flip completion
> > signal was added. Until recently, it was presumed that the interrupt
> > handling was now flawless, but once again Simon Farnsworth has found a
> > system whose display will stall. Reinstate the pageflip stall detection,
> > which works by checking to see if the hardware has been updated to the
> > new framebuffer address following each vblank. If the hardware is
> > scanning out from the new framebuffer, but we still think the flip is
> > pending, then we kick our driver into submision.
> > 
> > This is a continuation of the effort started with
> > commit 4e5359cd053bfb7d8dabe4a63624a5726848ffbc
> > Author: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
> > Date:   Wed Sep 1 17:47:52 2010 +0100
> > 
> >     drm/i915: Avoid pageflipping freeze when we miss the flip prepare interrupt
> > 
> > This now includes a belt-and-braces approach to make sure the driver
> > (or the hardware) doesn't miss an interrupt and cause us to stop
> > updating the display should the unthinkable happen and the pageflip fail - i.e.
> > that the user is able to continue submitting flips.
> > 
> > v2: Cleanup, refactor, and rename
> > v3: Only start counting vblanks after the flip command has been seen by
> >     the hardware.
> > v4: Record the seqno after we touch the ring, or else there may be no
> >     seqno allocated yet.
> > v5: Rebase on mmio-flip.
> > 
> > Reported-by: Simon Farnsworth <simon at farnz.org.uk>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75502
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com> [v4]
> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> 
> This seems to be on top of the s/seqno/request/ patch which moves around
> flip->enable_stall_check, which this patch here also does. I'm rather
> confused about the resulting conflict. Especially since it took me a while
> to understand what happened to enable_stall_check in your request patch,
> so I don't think I'm qualified to resolve the conflict.
> 
> Can you please rebase this one here quickly?

I have an aversion to seqno/ring combinations. That is so archaic! :)

Just these two? I think keeping the requests interface for the boosting
is neater than readding more seqno compares.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list