drm/i915: Adjust the sentinel assert to match implementation
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Sun, 7 Jun 2020 22:20:41 +0000 (23:20 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 8 Jun 2020 22:20:24 +0000 (23:20 +0100)
Sentinels are supposed to be last requests in the elsp queue, not the
only one, so adjust the assert accordingly.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200607222108.14401-1-chris@chris-wilson.co.uk
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/gt/intel_lrc.c

index d55a5e0466e5f3358b73e3ba036b3d09ae3d7bad..a057f7a2a521058f5dbf22a37d1c18a7db8e6a64 100644 (file)
@@ -1635,9 +1635,9 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
                ccid = ce->lrc.ccid;
 
                /*
-                * Sentinels are supposed to be lonely so they flush the
-                * current exection off the HW. Check that they are the
-                * only request in the pending submission.
+                * 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.
                 */
                if (sentinel) {
                        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,
                                      port - execlists->pending);
                        return false;
                }
-
                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! */
                if (!spin_trylock_irqsave(&rq->lock, flags))