[Intel-gfx] [PATCH] drm/i915/selftest: Synchronise with the GPU timestamp

Chang, Yu bruce yu.bruce.chang at intel.com
Fri Feb 5 00:35:18 UTC 2021


> 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 at intel.com>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: CQ Tang <cq.tang at intel.com>
> ---
>  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 at intel.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20210205/cca88e63/attachment.htm>


More information about the Intel-gfx mailing list