aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-12-22 17:55:01 -0500
committerKeith Packard <keithp@keithp.com>2012-01-03 12:31:16 -0500
commite959b5db4aacc27bcf92889e658445326ebc4bfb (patch)
tree725eaecc1fa3d42dc2a6d6f818f180c90c9c548d /drivers/gpu
parent42ff6572e5a4a7414330a4ca91f0335da67deca9 (diff)
drm/i915: Make the fallback IRQ wait not sleep.
The waits we do here are generally so short that sleeping is a bad idea unless we have an IRQ to wake us up. Improves regression test performance from 18 minutes to 3.5 minutes on gen7, which is now consistent with the previous generation. Signed-off-by: Eric Anholt <eric@anholt.net> Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Acked-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 66e0a555dbcc..e55badb2d86d 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2006,9 +2006,9 @@ i915_wait_request(struct intel_ring_buffer *ring,
2006 || atomic_read(&dev_priv->mm.wedged)); 2006 || atomic_read(&dev_priv->mm.wedged));
2007 2007
2008 ring->irq_put(ring); 2008 ring->irq_put(ring);
2009 } else if (wait_for(i915_seqno_passed(ring->get_seqno(ring), 2009 } else if (wait_for_atomic(i915_seqno_passed(ring->get_seqno(ring),
2010 seqno) || 2010 seqno) ||
2011 atomic_read(&dev_priv->mm.wedged), 3000)) 2011 atomic_read(&dev_priv->mm.wedged), 3000))
2012 ret = -EBUSY; 2012 ret = -EBUSY;
2013 ring->waiting_seqno = 0; 2013 ring->waiting_seqno = 0;
2014 2014
@@ -3309,8 +3309,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
3309 3309
3310 if (ret == 0 && atomic_read(&dev_priv->mm.wedged)) 3310 if (ret == 0 && atomic_read(&dev_priv->mm.wedged))
3311 ret = -EIO; 3311 ret = -EIO;
3312 } else if (wait_for(i915_seqno_passed(ring->get_seqno(ring), 3312 } else if (wait_for_atomic(i915_seqno_passed(ring->get_seqno(ring),
3313 seqno) || 3313 seqno) ||
3314 atomic_read(&dev_priv->mm.wedged), 3000)) { 3314 atomic_read(&dev_priv->mm.wedged), 3000)) {
3315 ret = -EBUSY; 3315 ret = -EBUSY;
3316 } 3316 }