[Intel-gfx] [PATCH igt] igt/perf_pmu: Recalibrate interrupt loop.
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Nov 24 09:52:23 UTC 2017
On 24/11/2017 09:28, Chris Wilson wrote:
> Quoting Tvrtko Ursulin (2017-11-24 09:11:06)
>>
>> On 23/11/2017 15:03, Chris Wilson wrote:
>>> We have to be careful in our calibration loop, too slow and we timeout,
>>> too fast and we don't emit an interrupt! On fast legacy devices, we
>>> would overflow the calibration calcuation...
>>>
>>> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
>>> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>> ---
>>> - sz = ALIGN(sz, sizeof(uint32_t));
>>> + sz = calibrate_nop(gem_fd, 1e6 / target);
>>> + gem_quiescent_gpu(gem_fd);
>>> +
>>> + fd = open_pmu(I915_PMU_INTERRUPTS);
>>> + spin = igt_spin_batch_new(gem_fd, 0, 0, 0);
>>
>> What's the spin batch for?
>
> It's just a plug to ensure that the queue of calibrated execs don't start
> executing before we're waiting on them. Instead of doing exec + sync, we
> want to switch to exec[N] + sync.
Of course, makes sense.
Only improvement I can think of is to define the target time (1e6) and
poll timeout (2000ms) from a common local variable.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list