[PATCH] drm/i915: Eliminate race from gen2/3 page flip interrupt handling

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

 



On Mon, Feb 18, 2013 at 12:16:09PM +0000, Chris Wilson wrote:
> On Mon, Feb 18, 2013 at 01:57:51PM +0200, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrj?l? <ville.syrjala at linux.intel.com>
> > 
> > If the interrupt handler were to process a previous vblank interrupt and
> > the following flip pending interrupt at the same time, the page flip
> > would be complete too soon.
> > 
> > To eliminate this race check the live pending flip status from the ISR
> > register before finishing the page flip.
> 
> Ok, that makes a lot of sense.
> 
> /* We detect FlipDone by looking for the change in PendingFlip from '1'
>  * to '0' on the following vblank, i.e. IIR has the Pendingflip
>  * asserted following the MI_DISPLAY_FLIP, but ISR is deasserted, hence
>  * the flip is completed (no longer pending). Since this doesn't raise an
>  * interrupt per-se, we watch for the change at vblank.
>  */

You want me to include that comment somewhere in the code?

> > Signed-off-by: Ville Syrj?l? <ville.syrjala at linux.intel.com>
> Reviewed-by: Chris Wilson <chris at chris-wils
> 
> Time to give it a quick test and make sure it doesn't break a ton of
> assumptions... :)
> -Chris
> 
> -- 
> Chris Wilson, Intel Open Source Technology Centre

-- 
Ville Syrj?l?
Intel OTC


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