[Intel-gfx] [PATCH] drm/i915/mtl: Print SSEU information of all GTs for debugfs
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Nov 3 11:17:18 UTC 2023
On 03/11/2023 05:29, Gareth Yu wrote:
> Print another SSEU information addition to the first one.
>
> Cc : Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay at intel.com>
> Cc : Matt Roper <matthew.d.roper at intel.com>
> Cc : Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Gareth Yu <gareth.yu at intel.com>
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 13 ++++++++++---
> drivers/gpu/drm/i915/i915_gpu_error.c | 6 +++++-
> 2 files changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index e9b79c2c37d8..b5914a2c0597 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -63,13 +63,16 @@ static int i915_capabilities(struct seq_file *m, void *data)
> {
> struct drm_i915_private *i915 = node_to_i915(m->private);
> struct drm_printer p = drm_seq_file_printer(m);
> + struct intel_gt *gt;
> + unsigned int i;
>
> seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(i915));
>
> intel_device_info_print(INTEL_INFO(i915), RUNTIME_INFO(i915), &p);
> intel_display_device_info_print(DISPLAY_INFO(i915), DISPLAY_RUNTIME_INFO(i915), &p);
> i915_print_iommu_status(i915, &p);
> - intel_gt_info_print(&to_gt(i915)->info, &p);
> + for_each_gt(gt, i915, i)
> + intel_gt_info_print(>->info, &p);
> intel_driver_caps_print(&i915->caps, &p);
>
> kernel_param_lock(THIS_MODULE);
> @@ -783,9 +786,13 @@ DEFINE_SIMPLE_ATTRIBUTE(i915_drop_caches_fops,
> static int i915_sseu_status(struct seq_file *m, void *unused)
> {
> struct drm_i915_private *i915 = node_to_i915(m->private);
> - struct intel_gt *gt = to_gt(i915);
> + struct intel_gt *gt;
> + unsigned int i;
> +
> + for_each_gt(gt, i915, i)
> + intel_sseu_status(m, gt);
Don't we have the per GT debugfs directories and files already!?
>
> - return intel_sseu_status(m, gt);
> + return 0;
> }
>
> static int i915_forcewake_open(struct inode *inode, struct file *file)
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index b4e31e59c799..2adc317af944 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -722,9 +722,13 @@ static void err_print_gt_info(struct drm_i915_error_state_buf *m,
> struct intel_gt_coredump *gt)
> {
> struct drm_printer p = i915_error_printer(m);
> + struct drm_i915_private *i915 = gt->_gt->i915;
> + struct intel_gt *gt_n;
> + unsigned int n;
>
> intel_gt_info_print(>->info, &p);
> - intel_sseu_print_topology(gt->_gt->i915, >->info.sseu, &p);
> + for_each_gt(gt_n, i915, n)
> + intel_sseu_print_topology(gt_n->i915, >_n->info.sseu, &p);
Do we need a consistent story across all error capture? Aka why is sseu
special.
Also the intel_gt_info_print() above calls intel_sseu_dump so we end up
with root tile SSEU printed twice?
There possibly was a Jira years ago to do stuff about multi-tile error
capture but maybe it got lost.
Adding Andi if he has comments.
Regards,
Tvrtko
> }
>
> static void err_print_gt_display(struct drm_i915_error_state_buf *m,
More information about the Intel-gfx
mailing list