[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