Quoting Antonio Argenziano (2018-03-08 00:55:47) > > > On 07/03/18 14:49, Chris Wilson wrote: > > +static void single(int fd, const struct intel_execution_engine *e) > > +{ > > + const unsigned int engine = e->exec_id | e->flags; > > + uint32_t ctx = gem_context_create(fd); > > + uint32_t min, max; > > + double measured; > > + igt_spin_t *spin; > > + int pmu; > > + > > + get_freq(fd, ctx, &min, &max); > > + igt_info("Min freq: %dMHz; Max freq: %dMHz\n", min, max); > > + > > + pmu = perf_i915_open(I915_PMU_REQUESTED_FREQUENCY); > > + igt_require(pmu >= 0); > > + > > + gem_quiescent_gpu(fd); > > + measured = measure_frequency(pmu, 10000); > > + igt_info("Initial (idle) freq: %.1fMHz\n",measured); > > + igt_require(measured >= min - 50 && measured <= min + 50); > > + > > + for (uint32_t freq = min + 50; freq <= max; freq += 100) { > > + set_freq(fd, ctx, freq, freq); > > + > > + gem_quiescent_gpu(fd); > > + spin = __igt_spin_batch_new(fd, ctx, engine, 0); > > + usleep(10000); > > + > > + measured = measure_frequency(pmu, 50000); > > + igt_debugfs_dump(fd, "i915_rps_boost_info"); > > + > > + igt_spin_batch_free(fd, spin); > > + igt_info("%s(single): Measured %.1fMHz, expected %dMhz\n", > > + e->name, measured, freq); > > + igt_assert(measured > freq - 100 && measured < freq + 100); > > + } > > + gem_quiescent_gpu(fd); > > Check frequency has gone back to ~min. It's not that interesting a test (covered already by pmu) as we essentially lie anyway over idle. > I would suggest to split here into two sub-tests. > > > + spin = __igt_spin_batch_new(fd, ctx, engine, 0); > > + for (uint32_t freq = min + 50; freq <= max; freq += 100) { > > + igt_spin_t *kick; > > + > > + set_freq(fd, ctx, freq, freq); > > + > > + /* > > + * When requesting a new frequency on the currently > > + * executing context, it does not take effect until the > > + * next context switch. In this case, we trigger a lite > > + * restore. > > Is this enforced by the ABI? Enforced? No. The comment is precisely because it's not checked on calling whether the context is currently on the HW and trying hard to be sure that no one expects us to do that check. i.e. that set_freq() doesn't change frequency itself, but doesn't rule it out either as it may appear to have that effect due to many external factors. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx