[Intel-gfx] [PATCH] drm/i915: print object bindings in debugfs

Ben Widawsky ben at bwidawsk.net
Fri Oct 18 23:39:06 CEST 2013


On Fri, Oct 18, 2013 at 05:33:52PM +0100, Chris Wilson wrote:
> On Fri, Oct 18, 2013 at 05:18:27PM +0200, Daniel Vetter wrote:
> > This is useful when we only have aliasing ppgtt and want to figure out
> > what exactly is accesssible and what not. Paulo can somehow overwrite
> > the fbcon framebuffer with the blitter on his hsw machine ...
> > 
> > Cc: Paulo Zanoni <przanoni at gmail.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> > ---
> >  drivers/gpu/drm/i915/i915_debugfs.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 061182a..e0a3b56 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -124,7 +124,9 @@ static inline const char *get_global_flag(struct drm_i915_gem_object *obj)
> >  static void
> >  describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
> >  {
> > +	struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
> >  	struct i915_vma *vma;
> > +
> >  	seq_printf(m, "%pK: %s%s%s %8zdKiB %02x %02x %u %u %u%s%s%s",
> >  		   &obj->base,
> >  		   get_pin_flag(obj),
> > @@ -155,6 +157,10 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
> >  		seq_printf(m, "gtt offset: %08lx, size: %08lx)",
> >  			   vma->node.start, vma->node.size);
> >  	}
> > +	if (dev_priv->mm.aliasing_ppgtt)
> > +		seq_pritnf(" (bindings: %s%s)",
> > +			   obj->has_global_gtt_mapping ? "g" : "",
> > +			   obj->has_aliasing_ppgtt_mapping ? "pp" : "");
> 
> So we have:
> 
> ...(bindings: )...
> ...(bindings: g)...
> ...(bindings: pp)...
> ...(bindings: gpp)...
> 
> That looks more confusing than informative atm.
> -Chris
> 

This is why I opted to leave just 'g' in get_global_flag. A lack of a g
inplies ppgtt. Also fwiw, this info is already there unless I didn't
follow what you did:

        list_for_each_entry(vma, &obj->vma_list, vma_link) {
                if (!i915_is_ggtt(vma->vm))
                        seq_puts(m, " (pp");
                else
                        seq_puts(m, " (g");
                seq_printf(m, "gtt offset: %08lx, size: %08lx)",
                           vma->node.start, vma->node.size);
        }



-- 
Ben Widawsky, Intel Open Source Technology Center



More information about the Intel-gfx mailing list