Re: [PATCH 45/48] drm/i915: Dump all ppgtt

Daniel Vetter
2013-12-18T15:25:54Z

On Fri, Dec 06, 2013 at 02:11:30PM -0800, Ben Widawsky wrote:
> From: Ben Widawsky <ben@bwidawsk.net>
>
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
>
> Conflicts:
> drivers/gpu/drm/i915/i915_debugfs.c

Please take these conflict markers out next time around ...
-Daniel

> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 6a98b64..7273af0a 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1657,6 +1657,17 @@ static int i915_swizzle_info(struct seq_file *m, void *data)
> return 0;
> }
>
> +static int per_file_ctx(int id, void *ptr, void *data)
> +{
> + struct i915_hw_context *ctx = ptr;
> + struct seq_file *m = data;
> + struct i915_hw_ppgtt *ppgtt = ctx_to_ppgtt(ctx);
> +
> + ppgtt->debug_dump(ppgtt, m);
> +
> + return 0;
> +}
> +
> static void gen8_ppgtt_info(struct seq_file *m, struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -1686,6 +1697,7 @@ static void gen6_ppgtt_info(struct seq_file *m, struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
> struct intel_ring_buffer *ring;
> + struct drm_file *file;
> int i;
>
> if (INTEL_INFO(dev)->gen == 6)
> @@ -1704,7 +1716,20 @@ static void gen6_ppgtt_info(struct seq_file *m, struct drm_device *dev)
>
> seq_puts(m, "aliasing PPGTT:\n");
> seq_printf(m, "pd gtt offset: 0x%08x\n", ppgtt->pd_offset);
> +
> ppgtt->debug_dump(ppgtt, m);
> + } else
> + return;
> +
> + list_for_each_entry_reverse(file, &dev->filelist, lhead) {
> + struct drm_i915_file_private *file_priv = file->driver_priv;
> + struct i915_hw_ppgtt *pvt_ppgtt;
> +
> + pvt_ppgtt = ctx_to_ppgtt(file_priv->private_default_ctx);
> + seq_printf(m, "proc: %s\n",
> + get_pid_task(file->pid, PIDTYPE_PID)->comm);
> + seq_puts(m, " default context:\n");
> + idr_for_each(&file_priv->context_idr, per_file_ctx, m);
> }
> seq_printf(m, "ECOCHK: 0x%08x\n", I915_READ(GAM_ECOCHK));
> }
> --
> 1.8.4.2
>

--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch