Commit 86aa7e76 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Assert that the context-switch completion matches our context

When execlists signals the context completion, it also provides the
context id for the status event. Assert that id matches the one we expect.

v2: The upper dword of the context status is a duplicate of the upper
dword from elsp submission (i.e. includes the group id as well as the
context id). Include this check as well.
v3: Only check against lrc_desc (as this contains the hw_id check)
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170123113132.18665-2-chris@chris-wilson.co.uk
parent 5d12fcef
...@@ -595,6 +595,11 @@ static void intel_lrc_irq_handler(unsigned long data) ...@@ -595,6 +595,11 @@ static void intel_lrc_irq_handler(unsigned long data)
if (!(status & GEN8_CTX_STATUS_COMPLETED_MASK)) if (!(status & GEN8_CTX_STATUS_COMPLETED_MASK))
continue; continue;
/* Check the context/desc id for this event matches */
GEM_BUG_ON(readl(buf + 2 * idx + 1) !=
upper_32_bits(intel_lr_context_descriptor(port[0].request->ctx,
engine)));
GEM_BUG_ON(port[0].count == 0); GEM_BUG_ON(port[0].count == 0);
if (--port[0].count == 0) { if (--port[0].count == 0) {
GEM_BUG_ON(status & GEN8_CTX_STATUS_PREEMPTED); GEM_BUG_ON(status & GEN8_CTX_STATUS_PREEMPTED);
......
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