[Intel-xe] [PATCH 7/7] drm/xe/gt: Dump PAT table when failing to initialize

Matt Roper matthew.d.roper at intel.com
Fri Sep 29 20:49:27 UTC 2023


On Thu, Sep 28, 2023 at 10:02:53PM -0700, Lucas De Marchi wrote:
> When failing on early initialization, one cause may be that the PAT
> configuration is not correct. Dump it for ease of debugging.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 1aa44d4f9ac1..1a750c88cdd6 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -307,6 +307,17 @@ int xe_gt_init_early(struct xe_gt *gt)
>  	return 0;
>  }
>  
> +static void dump_pat_on_error(struct xe_gt *gt)
> +{
> +	struct drm_printer p;
> +	char prefix[32];
> +
> +	snprintf(prefix, sizeof(prefix), "[GT%u Error]", gt->info.id);

Should we put 'PAT' somewhere in the string here so it's clear what all
the numbers getting dumped are supposed to be?  Or else add a
drm_printf() to add a "title" before calling the dump command below?

Up to you.

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> +	p = drm_debug_printer(prefix);
> +
> +	xe_pat_dump(gt, &p);
> +}
> +
>  static int gt_fw_domain_init(struct xe_gt *gt)
>  {
>  	int err, i;
> @@ -360,6 +371,7 @@ static int gt_fw_domain_init(struct xe_gt *gt)
>  	return 0;
>  
>  err_force_wake:
> +	dump_pat_on_error(gt);
>  	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
>  err_hw_fence_irq:
>  	for (i = 0; i < XE_ENGINE_CLASS_MAX; ++i)
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list