Commit 8733a063 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin Committed by Chris Wilson

drm/i915: Adjust the sentinel assert to match implementation

Sentinels are supposed to be last requests in the elsp queue, not the
only one, so adjust the assert accordingly.
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200607222108.14401-1-chris@chris-wilson.co.ukSigned-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent 46d53e27
...@@ -1635,9 +1635,9 @@ assert_pending_valid(const struct intel_engine_execlists *execlists, ...@@ -1635,9 +1635,9 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
ccid = ce->lrc.ccid; ccid = ce->lrc.ccid;
/* /*
* Sentinels are supposed to be lonely so they flush the * Sentinels are supposed to be the last request so they flush
* current exection off the HW. Check that they are the * the current execution off the HW. Check that they are the only
* only request in the pending submission. * request in the pending submission.
*/ */
if (sentinel) { if (sentinel) {
GEM_TRACE_ERR("%s: context:%llx after sentinel in pending[%zd]\n", GEM_TRACE_ERR("%s: context:%llx after sentinel in pending[%zd]\n",
...@@ -1646,15 +1646,7 @@ assert_pending_valid(const struct intel_engine_execlists *execlists, ...@@ -1646,15 +1646,7 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
port - execlists->pending); port - execlists->pending);
return false; return false;
} }
sentinel = i915_request_has_sentinel(rq); sentinel = i915_request_has_sentinel(rq);
if (sentinel && port != execlists->pending) {
GEM_TRACE_ERR("%s: sentinel context:%llx not in prime position[%zd]\n",
engine->name,
ce->timeline->fence_context,
port - execlists->pending);
return false;
}
/* Hold tightly onto the lock to prevent concurrent retires! */ /* Hold tightly onto the lock to prevent concurrent retires! */
if (!spin_trylock_irqsave(&rq->lock, flags)) if (!spin_trylock_irqsave(&rq->lock, flags))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment