Commit 03d0ed8a authored by Chris Wilson's avatar Chris Wilson

drm/i915: Skip capturing errors from internal contexts

We don't want to report errors on the internal contexts to userspace,
suppressing their own, so treat them as simulated errors. These mostly
arise inside selftests and so are simulated anyway. For the rest, we can
rely on the normal debug channels in CI.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200128113426.3711294-1-chris@chris-wilson.co.uk
parent 6f280b13
...@@ -83,6 +83,8 @@ live_context(struct drm_i915_private *i915, struct file *file) ...@@ -83,6 +83,8 @@ live_context(struct drm_i915_private *i915, struct file *file)
if (IS_ERR(ctx)) if (IS_ERR(ctx))
return ctx; return ctx;
i915_gem_context_set_no_error_capture(ctx);
err = gem_context_register(ctx, to_drm_file(file)->driver_priv, &id); err = gem_context_register(ctx, to_drm_file(file)->driver_priv, &id);
if (err < 0) if (err < 0)
goto err_ctx; goto err_ctx;
......
...@@ -1228,7 +1228,7 @@ static bool record_context(struct i915_gem_context_coredump *e, ...@@ -1228,7 +1228,7 @@ static bool record_context(struct i915_gem_context_coredump *e,
{ {
struct i915_gem_context *ctx; struct i915_gem_context *ctx;
struct task_struct *task; struct task_struct *task;
bool capture; bool simulated;
rcu_read_lock(); rcu_read_lock();
ctx = rcu_dereference(rq->context->gem_context); ctx = rcu_dereference(rq->context->gem_context);
...@@ -1236,7 +1236,7 @@ static bool record_context(struct i915_gem_context_coredump *e, ...@@ -1236,7 +1236,7 @@ static bool record_context(struct i915_gem_context_coredump *e,
ctx = NULL; ctx = NULL;
rcu_read_unlock(); rcu_read_unlock();
if (!ctx) if (!ctx)
return false; return true;
rcu_read_lock(); rcu_read_lock();
task = pid_task(ctx->pid, PIDTYPE_PID); task = pid_task(ctx->pid, PIDTYPE_PID);
...@@ -1250,10 +1250,10 @@ static bool record_context(struct i915_gem_context_coredump *e, ...@@ -1250,10 +1250,10 @@ static bool record_context(struct i915_gem_context_coredump *e,
e->guilty = atomic_read(&ctx->guilty_count); e->guilty = atomic_read(&ctx->guilty_count);
e->active = atomic_read(&ctx->active_count); e->active = atomic_read(&ctx->active_count);
capture = i915_gem_context_no_error_capture(ctx); simulated = i915_gem_context_no_error_capture(ctx);
i915_gem_context_put(ctx); i915_gem_context_put(ctx);
return capture; return simulated;
} }
struct intel_engine_capture_vma { struct intel_engine_capture_vma {
......
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