On Fri, Feb 20, 2015 at 11:16 PM, Michel Thierry <michel.thierry@xxxxxxxxx> wrote: > From: Ben Widawsky <benjamin.widawsky@xxxxxxxxx> > > v2: 0 pad the new 8B fields or else intel_error_decode has a hard time. > Note, regardless we need an igt update. > > v3: Make reloc_offset 64b also. > > Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> > Signed-off-by: Michel Thierry <michel.thierry@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.h | 4 ++-- > drivers/gpu/drm/i915/i915_gpu_error.c | 17 +++++++++-------- > 2 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index af0d149..056ced5 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -459,7 +459,7 @@ struct drm_i915_error_state { > > struct drm_i915_error_object { > int page_count; > - u32 gtt_offset; > + u64 gtt_offset; > u32 *pages[0]; > } *ringbuffer, *batchbuffer, *wa_batchbuffer, *ctx, *hws_page; > > @@ -485,7 +485,7 @@ struct drm_i915_error_state { > u32 size; > u32 name; > u32 rseqno, wseqno; > - u32 gtt_offset; > + u64 gtt_offset; > u32 read_domains; > u32 write_domain; > s32 fence_reg:I915_MAX_NUM_FENCE_BITS; > diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c > index a982849..bbf25d0 100644 > --- a/drivers/gpu/drm/i915/i915_gpu_error.c > +++ b/drivers/gpu/drm/i915/i915_gpu_error.c > @@ -195,7 +195,7 @@ static void print_error_buffers(struct drm_i915_error_state_buf *m, > err_printf(m, " %s [%d]:\n", name, count); > > while (count--) { > - err_printf(m, " %08x %8u %02x %02x %x %x", > + err_printf(m, " %016llx %8u %02x %02x %x %x", > err->gtt_offset, > err->size, > err->read_domains, > @@ -415,7 +415,7 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m, > err_printf(m, " (submitted by %s [%d])", > error->ring[i].comm, > error->ring[i].pid); > - err_printf(m, " --- gtt_offset = 0x%08x\n", > + err_printf(m, " --- gtt_offset = 0x%016llx\n", > obj->gtt_offset); > print_error_obj(m, obj); > } > @@ -423,7 +423,8 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m, > obj = error->ring[i].wa_batchbuffer; > if (obj) { > err_printf(m, "%s (w/a) --- gtt_offset = 0x%08x\n", > - dev_priv->ring[i].name, obj->gtt_offset); > + dev_priv->ring[i].name, > + lower_32_bits(obj->gtt_offset)); > print_error_obj(m, obj); > } > > @@ -442,14 +443,14 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m, > if ((obj = error->ring[i].ringbuffer)) { > err_printf(m, "%s --- ringbuffer = 0x%08x\n", > dev_priv->ring[i].name, > - obj->gtt_offset); > + lower_32_bits(obj->gtt_offset)); > print_error_obj(m, obj); > } > > if ((obj = error->ring[i].hws_page)) { > err_printf(m, "%s --- HW Status = 0x%08x\n", > dev_priv->ring[i].name, > - obj->gtt_offset); > + lower_32_bits(obj->gtt_offset)); > offset = 0; > for (elt = 0; elt < PAGE_SIZE/16; elt += 4) { > err_printf(m, "[%04x] %08x %08x %08x %08x\n", > @@ -465,13 +466,13 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m, > if ((obj = error->ring[i].ctx)) { > err_printf(m, "%s --- HW Context = 0x%08x\n", > dev_priv->ring[i].name, > - obj->gtt_offset); > + lower_32_bits(obj->gtt_offset)); > print_error_obj(m, obj); > } > } > > if ((obj = error->semaphore_obj)) { > - err_printf(m, "Semaphore page = 0x%08x\n", obj->gtt_offset); > + err_printf(m, "Semaphore page = 0x%016llx\n", obj->gtt_offset); Can the 'lower_32_bits' be used for the semaphore object also. Its mapped into GGTT during render ring init time, so may never have an offset of > 4 GB. > for (elt = 0; elt < PAGE_SIZE/16; elt += 4) { > err_printf(m, "[%04x] %08x %08x %08x %08x\n", > elt * 4, > @@ -571,7 +572,7 @@ i915_error_object_create(struct drm_i915_private *dev_priv, > int num_pages; > bool use_ggtt; > int i = 0; > - u32 reloc_offset; > + u64 reloc_offset; > > if (src == NULL || src->pages == NULL) > return NULL; > -- > 2.1.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx