On 09-01-2025 15:00,
sk.anirban@xxxxxxxxx wrote:
From: Sk Anirban <sk.anirban@xxxxxxxxx> Fix the frequency calculation by ensuring it is adjusted only once during power measurement. Update live_rps_power test to use the correct frequency values for logging and comparison. v2: - Improved frequency logging (Riana) Signed-off-by: Sk Anirban <sk.anirban@xxxxxxxxx> Reviewed-by: Riana Tauro <riana.tauro@xxxxxxxxx> --- drivers/gpu/drm/i915/gt/selftest_rps.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c index c207a4fb03bf..e515d7eb628a 100644 --- a/drivers/gpu/drm/i915/gt/selftest_rps.c +++ b/drivers/gpu/drm/i915/gt/selftest_rps.c @@ -1126,6 +1126,7 @@ static u64 measure_power_at(struct intel_rps *rps, int *freq) { *freq = rps_set_check(rps, *freq); msleep(100); + *freq = intel_gpu_freq(rps, *freq);
I am seeing rps_set_check will wait till act freq become desired freq, in case of timeout act freq could be different. I think it would be good to check freq returned by rps_set_check is expected freq if not then read freq again after msleep. Regards, Badal
return measure_power(rps, freq); } @@ -1202,13 +1203,13 @@ int live_rps_power(void *arg) pr_info("%s: min:%llumW @ %uMHz, max:%llumW @ %uMHz\n", engine->name, - min.power, intel_gpu_freq(rps, min.freq), - max.power, intel_gpu_freq(rps, max.freq)); + min.power, min.freq, + max.power, max.freq); if (10 * min.freq >= 9 * max.freq) { - pr_notice("Could not control frequency, ran at [%d:%uMHz, %d:%uMhz]\n", - min.freq, intel_gpu_freq(rps, min.freq), - max.freq, intel_gpu_freq(rps, max.freq)); + pr_notice("Could not control frequency, ran at [%uMHz, %uMhz]\n", + min.freq, + max.freq); continue; }