[igt-dev] [PATCH i-g-t v4 29/31] lib/i915/perf: Adjust the GPU timestamp for new OA formats

Dixit, Ashutosh ashutosh.dixit at intel.com
Wed Mar 22 05:40:56 UTC 2023


On Tue, 21 Mar 2023 17:05:21 -0700, Umesh Nerlige Ramappa wrote:
>
> In some OA formats, gpu_ts is a 64 bit value and the right shift can
> result in bit[31] being set. This throws off the correlation and the
> timelines. Apply the mask on gpu_ts as well.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit at intel.com>

> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
> ---
>  lib/i915/perf_data_reader.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/lib/i915/perf_data_reader.c b/lib/i915/perf_data_reader.c
> index 332f530e..2272ae2c 100644
> --- a/lib/i915/perf_data_reader.c
> +++ b/lib/i915/perf_data_reader.c
> @@ -216,6 +216,12 @@ correlate_gpu_timestamp(struct intel_perf_data_reader *reader,
>	uint64_t mask = reader->perf->devinfo.oa_timestamp_mask;
>	int corr_idx = -1;
>
> +	/* On some OA formats, gpu_ts is a 64 bit value and the shift can
> +	 * result in bit[31] being set. This throws off the correlation and the
> +	 * timelines. Apply the mask on gpu_ts as well.
> +	 */
> +	gpu_ts = gpu_ts & mask;
> +
>	for (uint32_t i = 0; i < reader->n_correlation_chunks; i++) {
>		if (gpu_ts >= (reader->correlation_chunks[i].gpu_ts_begin & mask) &&
>		    gpu_ts <= (reader->correlation_chunks[i].gpu_ts_end & mask)) {


More information about the igt-dev mailing list