[PATCH 3/6] drm/i915: Handle async cancellation in sentinel assert
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Mar 16 16:23:23 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.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 4b870eca9693..a886f0c9b288 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -752,8 +752,11 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
* Sentinels are supposed to be the last request so they flush
* the current execution off the HW. Check that they are the only
* request in the pending submission.
+ *
+ * Due async nature of preempt-to-busy and request cancellation
+ * we need to skip this assert for cancelled requests.
*/
- if (sentinel) {
+ if (sentinel && !rq->fence.error) {
GEM_TRACE_ERR("%s: context:%llx after sentinel in pending[%zd]\n",
engine->name,
ce->timeline->fence_context,
--
2.27.0
More information about the dri-devel
mailing list