[Intel-gfx] [PATCH 8/8] drm/i915: Show waiters in i915_hangcheck_info
Mika Kuoppala
mika.kuoppala at linux.intel.com
Tue Oct 4 12:41:24 UTC 2016
Chris Wilson <chris at chris-wilson.co.uk> writes:
The commit message is missing.
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 9c95ce73f2aa..39b76c24c84f 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1343,6 +1343,9 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
> seq_printf(m, "Hangcheck inactive\n");
>
> for_each_engine_id(engine, dev_priv, id) {
> + struct intel_breadcrumbs *b = &engine->breadcrumbs;
> + struct rb_node *rb;
> +
> seq_printf(m, "%s:\n", engine->name);
> seq_printf(m, "\tseqno = %x [current %x, last %x]\n",
> engine->hangcheck.seqno,
> @@ -1352,6 +1355,15 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
> yesno(intel_engine_has_waiter(engine)),
> yesno(test_bit(engine->id,
> &dev_priv->gpu_error.missed_irq_rings)));
> + spin_lock(&b->lock);
> + for (rb = rb_first(&b->waiters); rb; rb = rb_next(rb)) {
The waiters are embeddded in requests? So we need the rcu_read_lock?
-Mika
> + struct intel_wait *w = container_of(rb, typeof(*w), node);
> +
> + seq_printf(m, "\t%s [%d] waiting for %x\n",
> + w->tsk->comm, w->tsk->pid, w->seqno);
> + }
> + spin_unlock(&b->lock);
> +
> seq_printf(m, "\tACTHD = 0x%08llx [current 0x%08llx]\n",
> (long long)engine->hangcheck.acthd,
> (long long)acthd[id]);
> --
> 2.9.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list