On Tue, 24 Aug 2010 00:35:51 +0100, Sitsofe Wheeler sitsofe@yahoo.com wrote:
Hi,
With 2.6.36-rc2 I see periodic stalls when running with a stock Ubuntu 10.04 userspace. These stalls were not present in 2.6.36-rc1 on an EeePC 900 with an i915.
From the error message, I'd suggest we'd tackle hangcheck - it simply
shouldn't be firing at all under normal circumstances. (Looking at it we don't handle the introduction of the BSD ring correctly, but that is irrelevant on the EeePC 900.)
Do the stalls and tearing go away with:
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index e4d42a7..dc5fb4f 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1305,8 +1305,7 @@ void i915_hangcheck_elapsed(unsigned long data) dev_priv->hangcheck_count = 0;
/* Issue a wake-up to catch stuck h/w. */ - if (dev_priv->render_ring.waiting_gem_seqno | - dev_priv->bsd_ring.waiting_gem_seqno) { + if (0) { DRM_ERROR("Hangcheck timer elapsed... GPU idle, missed IRQ.\n"); if (dev_priv->render_ring.waiting_gem_seqno) DRM_WAKEUP(&dev_priv->render_ring.irq_queue);