[Intel-gfx] [PATCH 3/6] drm/i915: Handle async cancellation in sentinel assert
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Mar 18 17:04:16 UTC 2021
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
With the watchdog cancelling requests asynchronously to preempt-to-busy we
need to relax one assert making it apply only to requests not in error.
v2:
* Check against the correct request!
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 4b870eca9693..bf557290173a 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -815,6 +815,13 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
spin_unlock_irqrestore(&rq->lock, flags);
if (!ok)
return false;
+
+ /*
+ * Due async nature of preempt-to-busy and request cancellation
+ * we need to skip further asserts for cancelled requests.
+ */
+ if (READ_ONCE(rq->fence.error))
+ break;
}
return ce;
--
2.27.0
More information about the Intel-gfx
mailing list