提交 e959b5db 编写于 作者: E Eric Anholt 提交者: Keith Packard

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: NEric Anholt <eric@anholt.net>
Tested-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
Reviewed-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
Acked-by: NKenneth Graunke <kenneth@whitecape.org>
Signed-off-by: NKeith Packard <keithp@keithp.com>
上级 42ff6572
...@@ -2006,9 +2006,9 @@ i915_wait_request(struct intel_ring_buffer *ring, ...@@ -2006,9 +2006,9 @@ i915_wait_request(struct intel_ring_buffer *ring,
|| atomic_read(&dev_priv->mm.wedged)); || atomic_read(&dev_priv->mm.wedged));
ring->irq_put(ring); ring->irq_put(ring);
} else if (wait_for(i915_seqno_passed(ring->get_seqno(ring), } else if (wait_for_atomic(i915_seqno_passed(ring->get_seqno(ring),
seqno) || seqno) ||
atomic_read(&dev_priv->mm.wedged), 3000)) atomic_read(&dev_priv->mm.wedged), 3000))
ret = -EBUSY; ret = -EBUSY;
ring->waiting_seqno = 0; ring->waiting_seqno = 0;
...@@ -3309,8 +3309,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file) ...@@ -3309,8 +3309,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
if (ret == 0 && atomic_read(&dev_priv->mm.wedged)) if (ret == 0 && atomic_read(&dev_priv->mm.wedged))
ret = -EIO; ret = -EIO;
} else if (wait_for(i915_seqno_passed(ring->get_seqno(ring), } else if (wait_for_atomic(i915_seqno_passed(ring->get_seqno(ring),
seqno) || seqno) ||
atomic_read(&dev_priv->mm.wedged), 3000)) { atomic_read(&dev_priv->mm.wedged), 3000)) {
ret = -EBUSY; ret = -EBUSY;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册