Hi Krzysztof,

On Thu, Oct 01, 2026 at 07:40:55AM +0000, Krzysztof Karas wrote:
> Move away from generic pr prints to GT aware gt_* versions,
> which tag each message with device and the tile it came from.
> 
> i915_perf.c now uses drm_* prints, as it reports on a device
> wide perf stream with no GT to attribute the message to.
> 
> Ensure that 80 character line limit is respected wherever
> possible.
> 
> Assisted-by: GitHub-Copilot:claude-opus-5

Assisted-by: LLM

> Signed-off-by: Krzysztof Karas <[email protected]>
> ---
> v5:
>  * No changes since v4;
>  * Rebased;
> 
>  .../gpu/drm/i915/selftests/i915_gem_evict.c   |  52 +++--
>  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 164 +++++++++-----
>  drivers/gpu/drm/i915/selftests/i915_perf.c    |  30 ++-
>  drivers/gpu/drm/i915/selftests/i915_request.c | 206 ++++++++++++------
>  drivers/gpu/drm/i915/selftests/i915_vma.c     | 187 ++++++++++------
>  drivers/gpu/drm/i915/selftests/intel_uncore.c |  24 +-
>  6 files changed, 433 insertions(+), 230 deletions(-)

This patch is too long, for now it's OK as I've managed to go
through it already. But please, next time (not next version),
make it shorter.

...

> @@ -1849,7 +1893,8 @@ static int live_breadcrumbs_smoketest(void *arg)
>               num_fences += atomic_long_read(&smoke[idx].num_fences);
>               idx++;
>       }
> -     pr_info("Completed %lu waits for %lu fences across %d engines and %d 
> cpus\n",
> +     gt_info(engine->gt,
> +             "Completed %lu waits for %lu fences across %d engines and %d 
> cpus\n",
>               num_waits, num_fences, idx, ncpus);

you end up here in a NULL pointer dereference because this is
printed after a for_each_uabi_engine() which exits when engine is
NULL.

You can use drm_info() here.

>  
>       ret = igt_live_test_end(&live) ?: ret;

...

> @@ -2929,7 +2989,8 @@ static int perf_series_engines(void *arg)
>                               decimal = 0;
>                       }
>  
> -                     pr_info("%s %5s: { seqno:%d, busy:%d.%02d%%, 
> runtime:%lldms, walltime:%lldms }\n",
> +                     gt_info(engine->gt,
> +                             "%s %5s: { seqno:%d, busy:%d.%02d%%, 
> runtime:%lldms, walltime:%lldms }\n",
>                               name, p->engine->name, ce->timeline->seqno,
>                               integer, decimal,
>                               div_u64(p->runtime, 1000 * 1000),

For the same reason this should be:

gt_info(p->engine->gt, ...);

Andi

Reply via email to