[Intel-gfx] [PATCH] drm/i915: paper over missed irq issues with force wake vodoo
eric at anholt.net
Wed Jan 11 01:51:08 CET 2012
On Tue, 10 Jan 2012 13:20:06 +0100, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Wed, Jan 04, 2012 at 07:40:45PM +0100, Daniel Vetter wrote:
> > Two things seem to do the trick on my ivb machine here:
> > - prevent the gt from powering down while waiting for seqno
> > notification interrupts by grabbing the force_wake in get_irq (and
> > dropping it in put_irq again).
> > - ordering writes from the ring's CS by reading a CS register, ACTHD
> > seems to work.
> > Only the blt&bsd ring on ivb seem to be massively affected by this,
> > but for paranoia do this dance also on the render ring and on snb
> > (i.e. all gpus with forcewake).
> > Tested with Eric's glCopyPixels loop which without this patch scores a
> > missed irq every few seconds.
> > This patch needs my forcewake rework to use a spinlock instead of
> > dev->struct_mutex.
> > v2: Improve the comment per Eugeni Dodonov's suggestion.
> > Cc: stable at kernel.org
> > Cc: Eric Anholt <eric at anholt.net>
> > Cc: Kenneth Graunke <kenneth at whitecape.org>
> > Cc: Eugeni Dodonov <eugeni.dodonov at intel.com>
> > Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
> > Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
> > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> From the internal doc "SNB GT PM Programming Guide", Section 4.3.1:
> "GT does not generate interrupts while in RC6 (by design)"
So they've gone out of their way to build broken stuff. Awesome.
I'd say you've found the clue here -- I'm a lot happier with going with
your patches now (and I was pretty happy with the gen7 side before).
I'd just like to not mess with gen6 unless we've got missed irq bugs
there to fix.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 197 bytes
Desc: not available
More information about the Intel-gfx