[PATCH 1/1] i915/query: Correlate engine and cpu timestamps with better accuracy

Umesh Nerlige Ramappa umesh.nerlige.ramappa at intel.com
Sat May 1 02:19:59 UTC 2021


On Fri, Apr 30, 2021 at 07:35:41PM -0500, Jason Ekstrand wrote:
>   On April 30, 2021 18:00:58 "Dixit, Ashutosh" <ashutosh.dixit at intel.com>
>   wrote:
>
>     On Fri, 30 Apr 2021 15:26:09 -0700, Umesh Nerlige Ramappa wrote:
>
>       Looks like the engine can be dropped since all timestamps are in sync.
>       I
>       just have one more question here. The timestamp itself is 36 bits.
>        Should
>       the uapi also report the timestamp width to the user OR should I just
>       return the lower 32 bits of the timestamp?
>
>   Yeah, I think reporting the timestamp width is a good idea since we're
>   reporting the period/frequency here.

Actually, I forgot that we are handling the overflow before returning 
the cs_cycles to the user and overflow handling was the only reason I 
thought user should know the width. Would you stil recommend returning 
the width in the uapi?

Thanks,
Umesh


>
>     How would exposing only the lower 32 bits of the timestamp work?
>     The way to avoid exposing the width would be to expose the timestamp as
>     a
>     regular 64 bit value. In the kernel engine state, have a variable for
>     the
>     counter and keep on accumulating that (on each query) to full 64 bits in
>     spite of the 36 bit HW counter overflow.
>
>   That's doesn't actually work since you can query the 64-bit timestamp
>   value from the GPU. The way this is handled in Vulkan is that the number
>   of timestamp bits is reported to the application as a queue property.
>   --Jason


More information about the dri-devel mailing list