Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-04 Thread Daniel Vetter
On Wed, Jan 04, 2012 at 09:05:51AM -0800, Keith Packard wrote:
> On Wed, 4 Jan 2012 18:02:21 +0100, Daniel Vetter  wrote:
> 
> > So I really don't like the busy-looping, especially now that
> > semaphores are enabled by default for ivb.
> 
> Alternatives are welcome; we have no other known fix for missing
> sequence writes.

See my patch, I'm pretty positive that I've successfully papered over it,
at least on my machine here. Also, Chris has posted an alternative using
irqs + a short timer as a backup a while ago. I like that much more.
-Daniel
-- 
Daniel Vetter
Mail: dan...@ffwll.ch
Mobile: +41 (0)79 365 57 48
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-04 Thread Keith Packard
On Wed, 4 Jan 2012 18:02:21 +0100, Daniel Vetter  wrote:

> So I really don't like the busy-looping, especially now that
> semaphores are enabled by default for ivb.

Alternatives are welcome; we have no other known fix for missing
sequence writes.

-- 
keith.pack...@intel.com


pgpHcsh2BtIKu.pgp
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-04 Thread Daniel Vetter
On Tue, Jan 03, 2012 at 03:38:25PM -0800, Keith Packard wrote:
> On Wed, 4 Jan 2012 00:04:18 +0100, Daniel Vetter  wrote:
> 
> > I kinda prefer Chris' approach of sticking with irqs, but backing it up
> > with a timer in the msec range. Can't find that patch though atm (iirc
> > it's in bugzilla somewhere).
> 
> I think we've resolved that the interrupt arrives, but that it is not
> serialized wrt the memory write. So, what I'd love to see is whether
> waiting for the irq and then busy looping for 'a while' works. This
> would allow for long-running operations to idle the CPU and then hit the
> interrupt and spin until the memory write is recognized.
> 
> Any solution which can leave operations unacknowledged for 'ms'
> timeframes seems like a potential for serious performance
> problems. Eric's simple spinning approach seems fine for the BLT ring
> which we don't use that often; something more complicated and yet not
> entirely timer-based might be more efficient for longer-running operations.

Afaics we only spin shortly on the blt ring if
- semaphores are not enabled and
- mesa is the client.
For all other cases it's pretty easy to come up with examples where we
busy-loop for a rather long time. So I really don't like the busy-looping,
especially now that semaphores are enabled by default for ivb.
-Daniel
-- 
Daniel Vetter
Mail: dan...@ffwll.ch
Mobile: +41 (0)79 365 57 48
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-03 Thread Keith Packard
On Wed, 4 Jan 2012 00:04:18 +0100, Daniel Vetter  wrote:

> I kinda prefer Chris' approach of sticking with irqs, but backing it up
> with a timer in the msec range. Can't find that patch though atm (iirc
> it's in bugzilla somewhere).

I think we've resolved that the interrupt arrives, but that it is not
serialized wrt the memory write. So, what I'd love to see is whether
waiting for the irq and then busy looping for 'a while' works. This
would allow for long-running operations to idle the CPU and then hit the
interrupt and spin until the memory write is recognized.

Any solution which can leave operations unacknowledged for 'ms'
timeframes seems like a potential for serious performance
problems. Eric's simple spinning approach seems fine for the BLT ring
which we don't use that often; something more complicated and yet not
entirely timer-based might be more efficient for longer-running operations.

-- 
keith.pack...@intel.com


pgpCYfLNh5Ipj.pgp
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-03 Thread Daniel Vetter
On Thu, Dec 22, 2011 at 02:54:58PM -0800, Eric Anholt wrote:
> This is the minimal patchset I have for working around the missed
> IRQs.  I've been running it since Monday doing test runs for other
> work, and it appears to be stable.

I'm a bit late to the party with two things:
- The bsd ring is similarly broken and
- we can easily wait for a few msec (probably not when running piglit
  though) here, so busylooping is imo not appropriate.

I kinda prefer Chris' approach of sticking with irqs, but backing it up
with a timer in the msec range. Can't find that patch though atm (iirc
it's in bugzilla somewhere).

Cheers, Daniel
-- 
Daniel Vetter
Mail: dan...@ffwll.ch
Mobile: +41 (0)79 365 57 48
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-02 Thread Kenneth Graunke
On 12/22/2011 02:54 PM, Eric Anholt wrote:
> This is the minimal patchset I have for working around the missed
> IRQs.  I've been running it since Monday doing test runs for other
> work, and it appears to be stable.

These all look okay to me, but this really isn't my area of expertise.

Acked-by: Kenneth Graunke 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen7 missed IRQ workaround series.

2012-01-02 Thread Eugeni Dodonov
On Thu, Dec 22, 2011 at 20:54, Eric Anholt  wrote:

> This is the minimal patchset I have for working around the missed
> IRQs.  I've been running it since Monday doing test runs for other
> work, and it appears to be stable.
>

Works for me, no more missed IRQs nor hangs/delays with this patchset.

I have one questions though - would it be possible to control the
interrupts behavior via a module parameter or debugfs entry to simplify
debugging of this issue going forward?

For example, something like /sys/kernel/debug/dri/0/i915_irq_polling -
writing '1' there would enable polling, and '0' would use the usual
gen6_ring_get_irq. This would default to '1' on gen7, and '0' on older
architectures.

Other than that,
Tested-by: Eugeni Dodonov 
Reviewed-by: Eugeni Dodonov 

-- 
Eugeni Dodonov

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] gen7 missed IRQ workaround series.

2011-12-22 Thread Eric Anholt
This is the minimal patchset I have for working around the missed
IRQs.  I've been running it since Monday doing test runs for other
work, and it appears to be stable.

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx