From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] tools/inter_error_decode: decode for ctl and acthd Date: Tue, 16 Jul 2013 15:19:28 +0200 Message-ID: <20130716131928.GU5784@phenom.ffwll.local> References: <1373637724-19407-1-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ea0-f174.google.com (mail-ea0-f174.google.com [209.85.215.174]) by gabe.freedesktop.org (Postfix) with ESMTP id 0ADA6E6C04 for ; Tue, 16 Jul 2013 06:19:26 -0700 (PDT) Received: by mail-ea0-f174.google.com with SMTP id o10so372859eaj.33 for ; Tue, 16 Jul 2013 06:19:26 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1373637724-19407-1-git-send-email-mika.kuoppala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Mika Kuoppala Cc: intel-gfx@lists.freedesktop.org, miku@iki.fi List-Id: intel-gfx@lists.freedesktop.org On Fri, Jul 12, 2013 at 05:02:04PM +0300, Mika Kuoppala wrote: > Signed-off-by: Mika Kuoppala Applied, thanks for the patch. -Daniel > --- > tools/intel_error_decode.c | 35 +++++++++++++++++++++++++++++++++-- > 1 file changed, 33 insertions(+), 2 deletions(-) > > diff --git a/tools/intel_error_decode.c b/tools/intel_error_decode.c > index 434c13a..b3d7efb 100644 > --- a/tools/intel_error_decode.c > +++ b/tools/intel_error_decode.c > @@ -62,6 +62,31 @@ print_head(unsigned int reg) > return reg & (0x7ffff<<2); > } > > +static uint32_t > +print_ctl(unsigned int reg) > +{ > + uint32_t ring_length = (((reg & (0x1ff << 12)) >> 12) + 1) * 4096; > + > +#define BIT_STR(reg, x, on, off) ((1 << (x)) & reg) ? on : off > + > + printf(" len=%d%s%s%s\n", ring_length, > + BIT_STR(reg, 0, ", enabled", ", disabled"), > + BIT_STR(reg, 10, ", semaphore wait ", ""), > + BIT_STR(reg, 11, ", rb wait ", "") > + ); > +#undef BIT_STR > + return ring_length; > +} > + > +static void > +print_acthd(unsigned int reg, unsigned int ring_length) > +{ > + if ((reg & (0x7ffff << 2)) < ring_length) > + printf(" at ring: 0x%08x\n", reg & (0x7ffff << 2)); > + else > + printf(" at batch: 0x%08x\n", reg); > +} > + > static void > print_instdone(uint32_t devid, unsigned int instdone, unsigned int instdone1) > { > @@ -304,7 +329,7 @@ read_data_file(FILE *file) > int data_size = 0, count = 0, line_number = 0, matched; > char *line = NULL; > size_t line_size; > - uint32_t offset, value; > + uint32_t offset, value, ring_length = 0; > uint32_t gtt_offset = 0, new_gtt_offset; > char *ring_name = NULL; > int is_batch = 1; > @@ -391,14 +416,20 @@ read_data_file(FILE *file) > decode_ctx = drm_intel_decode_context_alloc(devid); > } > > + matched = sscanf(line, " CTL: 0x%08x\n", ®); > + if (matched == 1) > + ring_length = print_ctl(reg); > + > matched = sscanf(line, " HEAD: 0x%08x\n", ®); > if (matched == 1) { > head[head_ndx++] = print_head(reg); > } > > matched = sscanf(line, " ACTHD: 0x%08x\n", ®); > - if (matched == 1) > + if (matched == 1) { > + print_acthd(reg, ring_length); > drm_intel_decode_set_head_tail(decode_ctx, reg, 0xffffffff); > + } > > matched = sscanf(line, " PGTBL_ER: 0x%08x\n", ®); > if (matched == 1 && reg) > -- > 1.7.9.5 > > _______________________________________________ > 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