[Intel-xe] [PATCH 26/26] drm/xe: Clarify source of GT log messages
Michal Wajdeczko
michal.wajdeczko at intel.com
Wed May 17 09:33:56 UTC 2023
On 11.05.2023 05:47, Matt Roper wrote:
> The various functions in xe_gt.h can print a lot of important error and
> information messages; ensure that we always include the GT ID in those
> prints for clarity.
>
> In the future we may want to place the new macros in a dedicated header
> like we've done in i915. For now we're just using them within this one
> file, so including them at the top of the .c is fine.
series with this functionality [1] is already waiting for review/merge
[1] https://patchwork.freedesktop.org/series/117642/
>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> drivers/gpu/drm/xe/xe_gt.c | 52 ++++++++++++++++++--------------------
> 1 file changed, 25 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 2a3457fb97fa..edcb8ccde346 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -42,6 +42,11 @@
> #include "xe_wa.h"
> #include "xe_wopcm.h"
>
> +#define gt_info(_gt, _fmt, ...) \
> + drm_info(>_to_xe(_gt)->drm, "GT%u (Tile%u): " _fmt, (_gt)->info.id, gt_to_tile(_gt)->id, ##__VA_ARGS__)
> +#define gt_err(_gt, _fmt, ...) \
> + drm_err(>_to_xe(_gt)->drm, "GT%u (Tile%u): " _fmt, (_gt)->info.id, gt_to_tile(_gt)->id, ##__VA_ARGS__)
> +
> struct xe_gt *xe_gt_alloc(struct xe_tile *tile)
> {
> struct xe_gt *gt;
> @@ -193,16 +198,16 @@ int xe_gt_record_default_lrcs(struct xe_gt *gt)
> hwe, ENGINE_FLAG_WA);
> if (IS_ERR(e)) {
> err = PTR_ERR(e);
> - drm_err(&xe->drm, "gt%d, hwe %s, xe_engine_create,e failed=%d",
> - gt->info.id, hwe->name, err);
> + gt_err(gt, "hwe %s, xe_engine_create,e failed=%d",
> + hwe->name, err);
> goto put_vm;
> }
>
> /* Prime golden LRC with known good state */
> err = emit_wa_job(gt, e);
> if (err) {
> - drm_err(&xe->drm, "gt%d, hwe %s, guc_id=%d, emit_wa_job,e failed=%d",
> - gt->info.id, hwe->name, e->guc->id, err);
> + gt_err(gt, "hwe %s, guc_id=%d, emit_wa_job,e failed=%d",
> + hwe->name, e->guc->id, err);
> goto put_engine;
> }
>
> @@ -210,24 +215,24 @@ int xe_gt_record_default_lrcs(struct xe_gt *gt)
> 1, hwe, ENGINE_FLAG_WA);
> if (IS_ERR(nop_e)) {
> err = PTR_ERR(nop_e);
> - drm_err(&xe->drm, "gt%d, hwe %s, xe_engine_create,nop_e failed=%d",
> - gt->info.id, hwe->name, err);
> + gt_err(gt, "hwe %s, xe_engine_create,nop_e failed=%d",
> + hwe->name, err);
> goto put_engine;
> }
>
> /* Switch to different LRC */
> err = emit_nop_job(gt, nop_e);
> if (err) {
> - drm_err(&xe->drm, "gt%d, hwe %s, guc_id=%d, emit_nop_job,nop_e failed=%d",
> - gt->info.id, hwe->name, nop_e->guc->id, err);
> + gt_err(gt, "hwe %s, guc_id=%d, emit_nop_job,nop_e failed=%d",
> + hwe->name, nop_e->guc->id, err);
> goto put_nop_e;
> }
>
> /* Reload golden LRC to record the effect of any indirect W/A */
> err = emit_nop_job(gt, e);
> if (err) {
> - drm_err(&xe->drm, "gt%d, hwe %s, guc_id=%d, emit_nop_job,e failed=%d",
> - gt->info.id, hwe->name, e->guc->id, err);
> + gt_err(gt, "hwe %s, guc_id=%d, emit_nop_job,e failed=%d",
> + hwe->name, e->guc->id, err);
> goto put_nop_e;
> }
>
> @@ -443,15 +448,13 @@ int xe_gt_init(struct xe_gt *gt)
>
> static int do_gt_reset(struct xe_gt *gt)
> {
> - struct xe_device *xe = gt_to_xe(gt);
> int err;
>
> xe_mmio_write32(gt, GDRST, GRDOM_FULL);
> err = xe_mmio_wait32(gt, GDRST, 0, GRDOM_FULL, 5000,
> NULL, false);
> if (err)
> - drm_err(&xe->drm,
> - "GT reset failed to clear GEN11_GRDOM_FULL\n");
> + gt_err(gt, "reset failed to clear GRDOM_FULL\n");
>
> return err;
> }
> @@ -494,14 +497,13 @@ static int do_gt_restart(struct xe_gt *gt)
>
> static int gt_reset(struct xe_gt *gt)
> {
> - struct xe_device *xe = gt_to_xe(gt);
> int err;
>
> /* We only support GT resets with GuC submission */
> if (!xe_device_guc_submission_enabled(gt_to_xe(gt)))
> return -ENODEV;
>
> - drm_info(&xe->drm, "GT reset started\n");
> + gt_info(gt, "reset started\n");
>
> xe_gt_sanitize(gt);
>
> @@ -530,7 +532,7 @@ static int gt_reset(struct xe_gt *gt)
> err = xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
> XE_WARN_ON(err);
>
> - drm_info(&xe->drm, "GT reset done\n");
> + gt_info(gt, "reset done\n");
>
> return 0;
>
> @@ -539,7 +541,7 @@ static int gt_reset(struct xe_gt *gt)
> err_msg:
> XE_WARN_ON(xe_uc_start(>->uc));
> xe_device_mem_access_put(gt_to_xe(gt));
> - drm_err(&xe->drm, "GT reset failed, err=%d\n", err);
> + gt_err(gt, "reset failed, err=%d\n", err);
>
> return err;
> }
> @@ -553,15 +555,13 @@ static void gt_reset_worker(struct work_struct *w)
>
> void xe_gt_reset_async(struct xe_gt *gt)
> {
> - struct xe_device *xe = gt_to_xe(gt);
> -
> - drm_info(&xe->drm, "Try GT reset\n");
> + gt_info(gt, "Try GT reset\n");
>
> /* Don't do a reset while one is already in flight */
> if (xe_uc_reset_prepare(>->uc))
> return;
>
> - drm_info(&xe->drm, "Doing GT reset\n");
> + gt_info(gt, "Doing GT reset\n");
> queue_work(gt->ordered_wq, >->reset.worker);
> }
>
> @@ -578,7 +578,6 @@ void xe_gt_suspend_prepare(struct xe_gt *gt)
>
> int xe_gt_suspend(struct xe_gt *gt)
> {
> - struct xe_device *xe = gt_to_xe(gt);
> int err;
>
> /* For now suspend/resume is only allowed with GuC */
> @@ -598,7 +597,7 @@ int xe_gt_suspend(struct xe_gt *gt)
>
> xe_device_mem_access_put(gt_to_xe(gt));
> XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
> - drm_info(&xe->drm, "GT suspended\n");
> + gt_info(gt, "suspended\n");
>
> return 0;
>
> @@ -606,14 +605,13 @@ int xe_gt_suspend(struct xe_gt *gt)
> XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
> err_msg:
> xe_device_mem_access_put(gt_to_xe(gt));
> - drm_err(&xe->drm, "GT suspend failed: %d\n", err);
> + gt_err(gt, "suspend failed: %d\n", err);
>
> return err;
> }
>
> int xe_gt_resume(struct xe_gt *gt)
> {
> - struct xe_device *xe = gt_to_xe(gt);
> int err;
>
> xe_device_mem_access_get(gt_to_xe(gt));
> @@ -627,7 +625,7 @@ int xe_gt_resume(struct xe_gt *gt)
>
> xe_device_mem_access_put(gt_to_xe(gt));
> XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
> - drm_info(&xe->drm, "GT resumed\n");
> + gt_info(gt, "resumed\n");
>
> return 0;
>
> @@ -635,7 +633,7 @@ int xe_gt_resume(struct xe_gt *gt)
> XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
> err_msg:
> xe_device_mem_access_put(gt_to_xe(gt));
> - drm_err(&xe->drm, "GT resume failed: %d\n", err);
> + gt_err(gt, "resume failed: %d\n", err);
>
> return err;
> }
More information about the Intel-xe
mailing list