Commit 38098750 authored by Chris Wilson's avatar Chris Wilson

drm/i915/execlists: Ignore the inactive kernel context in assert_pending_valid

Filter out warnings for the kernel context that is used to flush
inactive contexts, as they do no not pose a risk.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Acked-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191101082919.21122-1-chris@chris-wilson.co.uk
parent b0b10248
...@@ -1291,7 +1291,8 @@ assert_pending_valid(const struct intel_engine_execlists *execlists, ...@@ -1291,7 +1291,8 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
for (port = execlists->pending; (rq = *port); port++) { for (port = execlists->pending; (rq = *port); port++) {
if (ce == rq->hw_context) { if (ce == rq->hw_context) {
GEM_TRACE_ERR("Duplicate context in pending[%zd]\n", GEM_TRACE_ERR("Dup context:%llx in pending[%zd]\n",
ce->timeline->fence_context,
port - execlists->pending); port - execlists->pending);
return false; return false;
} }
...@@ -1300,20 +1301,24 @@ assert_pending_valid(const struct intel_engine_execlists *execlists, ...@@ -1300,20 +1301,24 @@ assert_pending_valid(const struct intel_engine_execlists *execlists,
if (i915_request_completed(rq)) if (i915_request_completed(rq))
continue; continue;
if (i915_active_is_idle(&ce->active)) { if (i915_active_is_idle(&ce->active) &&
GEM_TRACE_ERR("Inactive context in pending[%zd]\n", !i915_gem_context_is_kernel(ce->gem_context)) {
GEM_TRACE_ERR("Inactive context:%llx in pending[%zd]\n",
ce->timeline->fence_context,
port - execlists->pending); port - execlists->pending);
return false; return false;
} }
if (!i915_vma_is_pinned(ce->state)) { if (!i915_vma_is_pinned(ce->state)) {
GEM_TRACE_ERR("Unpinned context in pending[%zd]\n", GEM_TRACE_ERR("Unpinned context:%llx in pending[%zd]\n",
ce->timeline->fence_context,
port - execlists->pending); port - execlists->pending);
return false; return false;
} }
if (!i915_vma_is_pinned(ce->ring->vma)) { if (!i915_vma_is_pinned(ce->ring->vma)) {
GEM_TRACE_ERR("Unpinned ringbuffer in pending[%zd]\n", GEM_TRACE_ERR("Unpinned ring:%llx in pending[%zd]\n",
ce->timeline->fence_context,
port - execlists->pending); port - execlists->pending);
return false; return false;
} }
......
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