[Intel-gfx] [PATCH 11/13] drm/i915: Store the active context object on all engines upon error
Chris Wilson
chris at chris-wilson.co.uk
Fri Aug 5 09:06:02 UTC 2016
With execlists, we have context objects everywhere, not just RCS. So
store them for post-mortem debugging.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
drivers/gpu/drm/i915/i915_gpu_error.c | 25 ++++---------------------
1 file changed, 4 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 462262ffec79..abfbd99dae96 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1034,25 +1034,6 @@ static void error_record_engine_registers(struct drm_i915_error_state *error,
}
}
-static void i915_gem_record_active_context(struct intel_engine_cs *engine,
- struct drm_i915_error_state *error,
- struct drm_i915_error_engine *ee)
-{
- struct drm_i915_private *dev_priv = engine->i915;
- struct i915_vma *vma;
-
- /* Currently render ring is the only HW context user */
- if (engine->id != RCS || !error->ccid)
- return;
-
- list_for_each_entry(vma, &dev_priv->ggtt.base.active_list, vm_link) {
- if ((error->ccid & PAGE_MASK) == vma->node.start) {
- ee->ctx = i915_error_object_create(dev_priv, vma);
- break;
- }
- }
-}
-
static void i915_gem_record_rings(struct drm_i915_private *dev_priv,
struct drm_i915_error_state *error)
{
@@ -1099,6 +1080,10 @@ static void i915_gem_record_rings(struct drm_i915_private *dev_priv,
i915_error_object_create(dev_priv,
engine->scratch);
+ ee->ctx =
+ i915_error_object_create(dev_priv,
+ request->ctx->engine[i].vma);
+
pid = request->ctx->pid;
if (pid) {
struct task_struct *task;
@@ -1129,8 +1114,6 @@ static void i915_gem_record_rings(struct drm_i915_private *dev_priv,
ee->wa_ctx =
i915_error_object_create(dev_priv, engine->wa_ctx.vma);
- i915_gem_record_active_context(engine, error, ee);
-
count = 0;
list_for_each_entry(request, &engine->request_list, link)
count++;
--
2.8.1
More information about the Intel-gfx
mailing list