From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Dump the whole context object. Date: Mon, 7 Apr 2014 08:24:54 +0200 Message-ID: <20140407062454.GC9262@phenom.ffwll.local> References: <1396734953-27748-1-git-send-email-benjamin.widawsky@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ee0-f41.google.com (mail-ee0-f41.google.com [74.125.83.41]) by gabe.freedesktop.org (Postfix) with ESMTP id 8D8616E4F0 for ; Sun, 6 Apr 2014 23:24:58 -0700 (PDT) Received: by mail-ee0-f41.google.com with SMTP id t10so243756eei.14 for ; Sun, 06 Apr 2014 23:24:56 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1396734953-27748-1-git-send-email-benjamin.widawsky@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ben Widawsky Cc: Intel GFX List-Id: intel-gfx@lists.freedesktop.org On Sat, Apr 05, 2014 at 02:55:53PM -0700, Ben Widawsky wrote: > As we've learned over time, the HW context is just a series of GPU > commands that we're able to decode without intel_error_decode. Since Correct to "... without any changes in intel_error_decode. ..." since I presumed that's what you wanted to say. > many bugs recently have been implicated in the HW context state, it > makes sense to dump the whole context object in a form which can be > parsed. > > Sample: > render ring --- HW Context = 0x042db000 > ringbuffer (render ring) at 0x0160c000; HEAD points to: 0x0160c000 > 0x0160c000: 0x00000000: MI_NOOP > 0x0160c004: 0x00000000: MI_NOOP > 0x0160c008: 0x00000000: MI_NOOP > 0x0160c00c: 0x00000000: MI_NOOP > 0x0160c010: 0x00000000: MI_NOOP > 0x0160c014: 0x00000000: MI_NOOP > 0x0160c018: 0x00000000: MI_NOOP > 0x0160c01c: 0x00000000: MI_NOOP > > Unfortunately, our decoder isn't quite smart enough to deal with the > variable length LRIs - but that is a tools problem. > > Signed-off-by: Ben Widawsky Queued for -next, thanks for the patch. -Daniel > --- > drivers/gpu/drm/i915/i915_gpu_error.c | 16 ++-------------- > 1 file changed, 2 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c > index f7a2c65..481a7d1 100644 > --- a/drivers/gpu/drm/i915/i915_gpu_error.c > +++ b/drivers/gpu/drm/i915/i915_gpu_error.c > @@ -452,16 +452,7 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m, > err_printf(m, "%s --- HW Context = 0x%08x\n", > dev_priv->ring[i].name, > obj->gtt_offset); > - offset = 0; > - for (elt = 0; elt < PAGE_SIZE/16; elt += 4) { > - err_printf(m, "[%04x] %08x %08x %08x %08x\n", > - offset, > - obj->pages[0][elt], > - obj->pages[0][elt+1], > - obj->pages[0][elt+2], > - obj->pages[0][elt+3]); > - offset += 16; > - } > + print_error_obj(m, obj); > } > } > > @@ -927,10 +918,7 @@ static void i915_gem_record_active_context(struct intel_ring_buffer *ring, > > list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) { > if ((error->ccid & PAGE_MASK) == i915_gem_obj_ggtt_offset(obj)) { > - ering->ctx = i915_error_object_create_sized(dev_priv, > - obj, > - &dev_priv->gtt.base, > - 1); > + ering->ctx = i915_error_ggtt_object_create(dev_priv, obj); > break; > } > } > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch