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