[PATCH 5/5] drm/xe/oa: Enable OAM latency measurement
Umesh Nerlige Ramappa
umesh.nerlige.ramappa at intel.com
Thu Jun 5 16:25:35 UTC 2025
On Tue, Jun 03, 2025 at 01:21:33PM -0700, Ashutosh Dixit wrote:
>Enable OAM latency measurement for Xe3+ platforms.
>
>Bspec: 58840
>
>v2: Introduce DRM_XE_OA_UNIT_TYPE_OAM_SAG
>
>Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
>---
> drivers/gpu/drm/xe/regs/xe_oa_regs.h | 3 +++
> drivers/gpu/drm/xe/xe_oa.c | 11 ++++++++++-
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/xe/regs/xe_oa_regs.h b/drivers/gpu/drm/xe/regs/xe_oa_regs.h
>index a79ad2da070c2..e693a50706f84 100644
>--- a/drivers/gpu/drm/xe/regs/xe_oa_regs.h
>+++ b/drivers/gpu/drm/xe/regs/xe_oa_regs.h
>@@ -97,4 +97,7 @@
> #define OAM_STATUS(base) XE_REG((base) + OAM_STATUS_OFFSET)
> #define OAM_MMIO_TRG(base) XE_REG((base) + OAM_MMIO_TRG_OFFSET)
>
>+#define OAM_COMPRESSION_T3_CONTROL XE_REG(0x1c2e00)
>+#define OAM_LAT_MEASURE_ENABLE REG_BIT(4)
>+
> #endif
>diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
>index 35157424010bb..5aa68bd63b00d 100644
>--- a/drivers/gpu/drm/xe/xe_oa.c
>+++ b/drivers/gpu/drm/xe/xe_oa.c
>@@ -844,6 +844,11 @@ static void xe_oa_disable_metric_set(struct xe_oa_stream *stream)
>
> /* Reset PMON Enable to save power. */
> xe_mmio_rmw32(mmio, XELPMP_SQCNT1, sqcnt1, 0);
>+
>+ if ((stream->oa_unit->type == DRM_XE_OA_UNIT_TYPE_OAM ||
>+ stream->oa_unit->type == DRM_XE_OA_UNIT_TYPE_OAM_SAG) &&
>+ GRAPHICS_VER(stream->oa->xe) >= 30)
>+ xe_mmio_rmw32(mmio, OAM_COMPRESSION_T3_CONTROL, OAM_LAT_MEASURE_ENABLE, 0);
> }
>
> static void xe_oa_stream_destroy(struct xe_oa_stream *stream)
>@@ -1111,9 +1116,13 @@ static int xe_oa_enable_metric_set(struct xe_oa_stream *stream)
> */
> sqcnt1 = SQCNT1_PMON_ENABLE |
> (HAS_OA_BPC_REPORTING(stream->oa->xe) ? SQCNT1_OABPC : 0);
>-
> xe_mmio_rmw32(mmio, XELPMP_SQCNT1, 0, sqcnt1);
>
>+ if ((stream->oa_unit->type == DRM_XE_OA_UNIT_TYPE_OAM ||
>+ stream->oa_unit->type == DRM_XE_OA_UNIT_TYPE_OAM_SAG) &&
>+ GRAPHICS_VER(stream->oa->xe) >= 30)
>+ xe_mmio_rmw32(mmio, OAM_COMPRESSION_T3_CONTROL, 0, OAM_LAT_MEASURE_ENABLE);
>+
> /* Configure OAR/OAC */
> if (stream->exec_q) {
> ret = xe_oa_configure_oa_context(stream, true);
>--
>2.48.1
>
More information about the Intel-xe
mailing list