Quoting Tvrtko Ursulin (2020-03-11 18:26:11) > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c > index 6ca797128aa1..ae236058c87e 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -330,17 +330,17 @@ static void print_context_stats(struct seq_file *m, > .vm = rcu_access_pointer(ctx->vm), > }; > struct drm_file *file = ctx->file_priv->file; > - struct task_struct *task; > char name[80]; > > rcu_read_lock(); > + > idr_for_each(&file->object_idr, per_file_stats, &stats); > - rcu_read_unlock(); > > - rcu_read_lock(); > - task = pid_task(ctx->pid ?: file->pid, PIDTYPE_PID); > snprintf(name, sizeof(name), "%s", > - task ? task->comm : "<unknown>"); > + I915_SELFTEST_ONLY(!ctx->client) ? > + "[kernel]" : > + rcu_dereference(ctx->client->name)); > + > rcu_read_unlock(); > > print_file_stats(m, name, stats); > @@ -1059,19 +1059,16 @@ static int i915_context_status(struct seq_file *m, void *unused) > spin_unlock(&i915->gem.contexts.lock); > > seq_puts(m, "HW context "); > - if (ctx->pid) { > - struct task_struct *task; > - > - task = get_pid_task(ctx->pid, PIDTYPE_PID); > - if (task) { > - seq_printf(m, "(%s [%d]) ", > - task->comm, task->pid); > - put_task_struct(task); > - } > - } else if (IS_ERR(ctx->file_priv)) { > - seq_puts(m, "(deleted) "); > + > + if (I915_SELFTEST_ONLY(!ctx->client)) { > + seq_puts(m, "([kernel]) "); > } else { > - seq_puts(m, "(kernel) "); > + rcu_read_lock(); > + seq_printf(m, "(%s [%d]) %s", > + rcu_dereference(ctx->client->name), > + pid_nr(rcu_dereference(ctx->client->pid)), > + ctx->client->closed ? "(closed) " : ""); > + rcu_read_unlock(); > } debugfs is not available during selftests, so we don't need to worry. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx