Re: [PATCH] drm/i915/selftests: Show the full scaling curve on failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes:

> If we detect that the RPS end points do not scale perfectly, take the
> time to measure all the in between values as well. We are aborting the
> test, so we might as well spend the available time gathering critical
> debug information instead.
>
> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/gt/selftest_rps.c | 36 ++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c
> index e0a791eac752..f8c416ab8539 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_rps.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_rps.c
> @@ -484,11 +484,29 @@ int live_rps_frequency_cs(void *arg)
>  		if (!scaled_within(max.freq * min.count,
>  				   min.freq * max.count,
>  				   2, 3)) {
> +			int f;
> +
>  			pr_err("%s: CS did not scale with frequency! scaled min:%llu, max:%llu\n",
>  			       engine->name,
>  			       max.freq * min.count,
>  			       min.freq * max.count);
>  			show_pcu_config(rps);
> +
> +			for (f = min.freq + 1; f <= rps->max_freq; f++) {
> +				int act = f;
> +				u64 count;
> +
> +				count = measure_cs_frequency_at(rps, engine, &act);
> +				if (act < f)
> +					break;
> +

No gripes but in here I ponder would you like to break after the info.

Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>

> +				pr_info("%s: %x:%uMHz: %lluKHz [%d%%]\n",
> +					engine->name,
> +					act, intel_gpu_freq(rps, act), count,
> +					(int)DIV64_U64_ROUND_CLOSEST(100 * min.freq * count,
> +								     act * min.count));
> +			}
> +
>  			err = -EINVAL;
>  		}
>  
> @@ -593,11 +611,29 @@ int live_rps_frequency_srm(void *arg)
>  		if (!scaled_within(max.freq * min.count,
>  				   min.freq * max.count,
>  				   1, 2)) {
> +			int f;
> +
>  			pr_err("%s: CS did not scale with frequency! scaled min:%llu, max:%llu\n",
>  			       engine->name,
>  			       max.freq * min.count,
>  			       min.freq * max.count);
>  			show_pcu_config(rps);
> +
> +			for (f = min.freq + 1; f <= rps->max_freq; f++) {
> +				int act = f;
> +				u64 count;
> +
> +				count = measure_frequency_at(rps, cntr, &act);
> +				if (act < f)
> +					break;
> +
> +				pr_info("%s: %x:%uMHz: %lluKHz [%d%%]\n",
> +					engine->name,
> +					act, intel_gpu_freq(rps, act), count,
> +					(int)DIV64_U64_ROUND_CLOSEST(100 * min.freq * count,
> +								     act * min.count));
> +			}
> +
>  			err = -EINVAL;
>  		}
>  
> -- 
> 2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux