Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Include the position of the active request in the ring, and display that > alongside the current RING registers (on a GPU hang). > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.h | 3 +++ > drivers/gpu/drm/i915/i915_gpu_error.c | 9 +++++++-- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 91ac283d733e..e48044b3a447 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -776,6 +776,9 @@ struct drm_i915_error_state { > struct i915_address_space *vm; > int num_requests; > > + /* position of active request inside the ring */ > + u32 rq_head, rq_post, rq_tail; > + > /* our own tracking of ring head and tail */ > u32 cpu_ring_head; > u32 cpu_ring_tail; > diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c > index 2bbab226a46c..8b85efbdfa04 100644 > --- a/drivers/gpu/drm/i915/i915_gpu_error.c > +++ b/drivers/gpu/drm/i915/i915_gpu_error.c > @@ -262,8 +262,9 @@ static void error_print_engine(struct drm_i915_error_state_buf *m, > { > err_printf(m, "%s command stream:\n", engine_str(ee->engine_id)); > err_printf(m, " START: 0x%08x\n", ee->start); > - err_printf(m, " HEAD: 0x%08x\n", ee->head); > - err_printf(m, " TAIL: 0x%08x\n", ee->tail); > + err_printf(m, " HEAD: 0x%08x\n [0x%08x]", ee->head, ee->rq_head); > + err_printf(m, " TAIL: 0x%08x [0x%08x, 0x%08x]\n", > + ee->tail, ee->rq_post, ee->rq_tail); > err_printf(m, " CTL: 0x%08x\n", ee->ctl); > err_printf(m, " MODE: 0x%08x\n", ee->mode); > err_printf(m, " HWS: 0x%08x\n", ee->hws); > @@ -1230,6 +1231,10 @@ static void i915_gem_record_rings(struct drm_i915_private *dev_priv, > error->simulated |= > request->ctx->flags & CONTEXT_NO_ERROR_CAPTURE; > > + ee->rq_head = request->head; > + ee->rq_post = request->postfix; > + ee->rq_tail = request->tail; > + > ring = request->ring; > ee->cpu_ring_head = ring->head; > ee->cpu_ring_tail = ring->tail; > -- > 2.9.3 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx