[Intel-gfx] [PATCH] drm/i915: Break i915_spin_request() if we see an interrupt

Chris Wilson chris at chris-wilson.co.uk
Thu Feb 16 13:12:13 UTC 2017


If an interrupt has been posted, and we were spinning on the active
seqno waiting for it to advance but it did not, then we can expect that
it will not see its advance in the immediate future and should call into
the irq-seqno barrier. We can stop spinning at this point, and leave the
difficulty of handling the coherency to the caller.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
 drivers/gpu/drm/i915/i915_gem_request.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c
index 7760d7481f85..9e42b2687cae 100644
--- a/drivers/gpu/drm/i915/i915_gem_request.c
+++ b/drivers/gpu/drm/i915/i915_gem_request.c
@@ -993,6 +993,9 @@ bool __i915_spin_request(const struct drm_i915_gem_request *req,
 				      seqno))
 			return true;
 
+		if (test_bit(ENGINE_IRQ_BREADCRUMB, &req->engine->irq_posted))
+			break;
+
 		if (signal_pending_state(state, current))
 			break;
 
-- 
2.11.0



More information about the Intel-gfx mailing list