> Wait for the GPU to wake up from the semaphore before measuring the
>time, so that we coordinate the sampling on both the CPU and GPU for
> more accurate comparisons.
>
>Reported-by: Bruce Chang <yu.bruce.chang@xxxxxxxxx>
> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: CQ Tang <cq.tang@xxxxxxxxx>
> ---
> drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
>index 3ce8cb3329f3..007a7c790778 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
> @@ -111,8 +111,10 @@ static int __measure_timestamps(struct intel_context *ce,
>
> /* Run the request for a 100us, sampling timestamps before/after */
> preempt_disable();
> - *dt = local_clock();
> write_semaphore(&sema[2], 0);
> + while (READ_ONCE(sema[1]) == 0) /* wait for the gpu to catch up */
> + cpu_relax();
> + *dt = local_clock();
> udelay(100);
> *dt = local_clock() - *dt;
> write_semaphore(&sema[2], 1);
> --
>2.20.1
>
This trick should work!
Thanks!
Reviewed-by: Bruce Chang <yu.bruce.chang@xxxxxxxxx>
|
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx