diff mbox

drm/i915: Update gen8_ppgtt_info to keep working in full ppgtt

Message ID 1407503432-14037-1-git-send-email-michel.thierry@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Michel Thierry Aug. 8, 2014, 1:10 p.m. UTC
The driver will no longer initialize the aliasing ppgtt if we have
full ppgtt enabled.

gen8_ppgtt_info uses the aliasing ppgtt or the ppgtt from the
default context. This patch makes it clear.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Daniel Vetter Aug. 8, 2014, 1:47 p.m. UTC | #1
On Fri, Aug 08, 2014 at 02:10:32PM +0100, Michel Thierry wrote:
> The driver will no longer initialize the aliasing ppgtt if we have
> full ppgtt enabled.
> 
> gen8_ppgtt_info uses the aliasing ppgtt or the ppgtt from the
> default context. This patch makes it clear.
> 
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Michel Thierry <michel.thierry@intel.com>

I actually looked at this one here and decided that ppgtt_info for gen8 is
sufficiently broken so that we don't care. Imo we should refactor it a bit
so that it does the same as the gen6 version, i.e. dump the aliasing ppgtt
or the contexts.

Trying to dump the default ctx ppgtt when full ppgtt is enabled is fairly
usesless since nothing at all will ever use that one.

Best approach is probably to remove the gen8 version and push the GenX
checks down into the actual ppgtt dump functions or something like that.
-Daniel

> ---
>  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 8dc82c3..a62ac66 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1995,8 +1995,14 @@ static void gen8_ppgtt_info(struct seq_file *m, struct drm_device *dev)
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_engine_cs *ring;
>  	struct i915_hw_ppgtt *ppgtt = dev_priv->mm.aliasing_ppgtt;
> +	struct intel_context *ctx = dev_priv->ring[RCS].default_context;
>  	int unused, i;
>  
> +	if (USES_FULL_PPGTT(dev))
> +		ppgtt = ctx->ppgtt;
> +	else
> +		ppgtt = dev_priv->mm.aliasing_ppgtt;
> +
>  	if (!ppgtt)
>  		return;
>  
> -- 
> 2.0.3
>
Ben Widawsky Aug. 9, 2014, 12:14 a.m. UTC | #2
On Fri, Aug 08, 2014 at 03:47:54PM +0200, Daniel Vetter wrote:
> On Fri, Aug 08, 2014 at 02:10:32PM +0100, Michel Thierry wrote:
> > The driver will no longer initialize the aliasing ppgtt if we have
> > full ppgtt enabled.
> > 
> > gen8_ppgtt_info uses the aliasing ppgtt or the ppgtt from the
> > default context. This patch makes it clear.
> > 
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Signed-off-by: Michel Thierry <michel.thierry@intel.com>
> 
> I actually looked at this one here and decided that ppgtt_info for gen8 is
> sufficiently broken so that we don't care. Imo we should refactor it a bit
> so that it does the same as the gen6 version, i.e. dump the aliasing ppgtt
> or the contexts.
> 
> Trying to dump the default ctx ppgtt when full ppgtt is enabled is fairly
> usesless since nothing at all will ever use that one.
> 
> Best approach is probably to remove the gen8 version and push the GenX
> checks down into the actual ppgtt dump functions or something like that.
> -Daniel

I did start down this path here:
http://patchwork.freedesktop.org/patch/25728/ (originally here: http://patchwork.freedesktop.org/patch/22348/)

It also helped with the later addition for dynamic page tables. I would
ask that someone look at fixing that patch to their needs should the
dynamic page table patches ever get merged.

> 
> > ---
> >  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 8dc82c3..a62ac66 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -1995,8 +1995,14 @@ static void gen8_ppgtt_info(struct seq_file *m, struct drm_device *dev)
> >  	struct drm_i915_private *dev_priv = dev->dev_private;
> >  	struct intel_engine_cs *ring;
> >  	struct i915_hw_ppgtt *ppgtt = dev_priv->mm.aliasing_ppgtt;
> > +	struct intel_context *ctx = dev_priv->ring[RCS].default_context;
> >  	int unused, i;
> >  
> > +	if (USES_FULL_PPGTT(dev))
> > +		ppgtt = ctx->ppgtt;
> > +	else
> > +		ppgtt = dev_priv->mm.aliasing_ppgtt;
> > +
> >  	if (!ppgtt)
> >  		return;
> >  
> > -- 
> > 2.0.3
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 8dc82c3..a62ac66 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1995,8 +1995,14 @@  static void gen8_ppgtt_info(struct seq_file *m, struct drm_device *dev)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_engine_cs *ring;
 	struct i915_hw_ppgtt *ppgtt = dev_priv->mm.aliasing_ppgtt;
+	struct intel_context *ctx = dev_priv->ring[RCS].default_context;
 	int unused, i;
 
+	if (USES_FULL_PPGTT(dev))
+		ppgtt = ctx->ppgtt;
+	else
+		ppgtt = dev_priv->mm.aliasing_ppgtt;
+
 	if (!ppgtt)
 		return;