All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shekhar Chauhan <shekhar.chauhan@intel.com>
To: Ashutosh Dixit <ashutosh.dixit@intel.com>,
	<igt-dev@lists.freedesktop.org>
Subject: Re: [PATCH i-g-t] lib/xe/oa: Add support for 192B_MPEC8LL_NOA16 OAM format
Date: Thu, 16 Apr 2026 10:01:23 +0530	[thread overview]
Message-ID: <9ff0775d-e568-46db-abb8-efad79ecb387@intel.com> (raw)
In-Reply-To: <20260415215257.898995-1-ashutosh.dixit@intel.com>


On 4/16/2026 3:22, Ashutosh Dixit wrote:
> Support for CRI 192B_MPEC8LL_NOA16 OAM format was previously missed
> out. Add it.
>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> ---
>   lib/xe/oa-configs/oa-metricset-codegen.py | 13 +++++++++++-
>   lib/xe/xe_oa.c                            | 24 +++++++++++++++++++++++
>   2 files changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/lib/xe/oa-configs/oa-metricset-codegen.py b/lib/xe/oa-configs/oa-metricset-codegen.py
> index c5c7a2c8d4..b44d4d73af 100644
> --- a/lib/xe/oa-configs/oa-metricset-codegen.py
> +++ b/lib/xe/oa-configs/oa-metricset-codegen.py
> @@ -139,7 +139,7 @@ def generate_metric_sets(args, gen):
>                       metric_set->perfcnt_offset = metric_set->c_offset + 8;
>                   """))
>           elif gen.chipset == "lnl" or gen.chipset == "bmg" or gen.chipset == "ptl" or gen.chipset == "cri":
> -            # See intel_xe_perf_accumulate_reports for the offsets
> +            # See intel_xe_perf_accumulate_reports for the offsets (value of idx variable)
>               if set.oa_format == "128B_MPEC8_NOA16" or set.oa_format == "128B_MERT_PEC8":
>                   c(textwrap.dedent("""\
>                       metric_set->perf_oa_format = XE_OAM_FORMAT_MPEC8u32_B8_C8;
> @@ -151,6 +151,17 @@ def generate_metric_sets(args, gen):
>                       metric_set->b_offset = metric_set->pec_offset + 8;
>                       metric_set->c_offset = metric_set->b_offset + 8;
>                   """))
> +            elif set.oa_format == "192B_MPEC8LL_NOA16":
> +                c(textwrap.dedent("""\
> +                    metric_set->perf_oa_format = XE_OAM_FORMAT_MPEC8u64_B8_C8;
> +
> +                    metric_set->perf_raw_size = 192;
> +                    metric_set->gpu_time_offset = 0;
> +                    metric_set->gpu_clock_offset = 1;
> +                    metric_set->pec_offset = 2;
> +                    metric_set->b_offset = metric_set->pec_offset + 8;
> +                    metric_set->c_offset = metric_set->b_offset + 8;
> +                """))
>               else:
>                   c(textwrap.dedent("""\
>                       metric_set->perf_oa_format = XE_OA_FORMAT_PEC64u64;
> diff --git a/lib/xe/xe_oa.c b/lib/xe/xe_oa.c
> index b2f447c944..d1a382bdd1 100644
> --- a/lib/xe/xe_oa.c
> +++ b/lib/xe/xe_oa.c
> @@ -875,6 +875,30 @@ void intel_xe_perf_accumulate_reports(struct intel_xe_perf_accumulator *acc,
>   
>   		break;
>   
> +	case XE_OAM_FORMAT_MPEC8u64_B8_C8:
> +		/* 64 bit timestamp */
> +		if (perf->devinfo.oa_timestamp_shift >= 0)
> +			deltas[idx++] += (end64[1] - start64[1]) << perf->devinfo.oa_timestamp_shift;
> +		else
> +			deltas[idx++] += (end64[1] - start64[1]) >> (-perf->devinfo.oa_timestamp_shift);
> +
> +		/* 64 bit clock */
> +		deltas[idx++] += end64[3] - start64[3];
> +
> +		/* 8x 64bit MPEC counters */
> +		for (i = 0; i < 8; i++)
> +			deltas[idx++] += end64[4 + i] - start64[4 + i];
> +
> +		
I feel the below increments are wrong. The added format is of 64bit.
> /* 8x 32bit B counters */
> +		for (i = 0; i < 8; i++)
> +			accumulate_uint32(start + 16 + i, end + 16 + i, deltas + idx++);
This should be "accumulate_uint32(start + 24 + i, end + 24 + i, deltas + 
idx++);"
> +
> +		/* 8x 32bit C counters */
> +		for (i = 0; i < 8; i++)
> +			accumulate_uint32(start + 24 + i, end + 24 + i, deltas + idx++);

And this, "accumulate_uint32(start + 32 + i, end + 32 + i, deltas + idx++);"

I'm still new to this, so I can be wrong. Maybe help me understand. 
Other than this, patch looks fine to me.

-shekhar

> +
> +		break;
> +
>   	case XE_OA_FORMAT_PEC64u64:
>   		/* 64 bit timestamp */
>   		if (perf->devinfo.oa_timestamp_shift >= 0)

-- 
Shekhar Chauhan
Linux Graphics Software Engineer
Intel Corporation


  parent reply	other threads:[~2026-04-16  4:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-15 21:52 [PATCH i-g-t] lib/xe/oa: Add support for 192B_MPEC8LL_NOA16 OAM format Ashutosh Dixit
2026-04-16  1:27 ` ✓ Xe.CI.BAT: success for " Patchwork
2026-04-16  1:58 ` ✓ i915.CI.BAT: " Patchwork
2026-04-16  3:51 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-04-16  4:31 ` Shekhar Chauhan [this message]
2026-04-16 18:50   ` [PATCH i-g-t] " Dixit, Ashutosh
2026-04-16 11:39 ` ✗ i915.CI.Full: failure for " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2026-04-17  3:33 [PATCH i-g-t] " Ashutosh Dixit
2026-04-17  5:35 ` Shekhar Chauhan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9ff0775d-e568-46db-abb8-efad79ecb387@intel.com \
    --to=shekhar.chauhan@intel.com \
    --cc=ashutosh.dixit@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.