[PATCH] drm/xe/oa: Don't reset OAC_CONTEXT_ENABLE on OA stream close
Dixit, Ashutosh
ashutosh.dixit at intel.com
Wed Sep 25 18:38:30 UTC 2024
On Tue, 24 Sep 2024 14:37:13 -0700, Ashutosh Dixit wrote:
>
> From: José Roberto de Souza <jose.souza at intel.com>
>
> Mesa testing on Xe2+ revealed that when OA metrics are collected for an
> exec_queue, after the OA stream is closed, future batch buffers submitted
> on that exec_queue do not complete. Not resetting OAC_CONTEXT_ENABLE on OA
> stream close resolves these hangs and should not have any adverse effects.
>
> v2: Make the change that we don't reset the bit clearer (Ashutosh)
> Also make the same fix for OAC as OAR (Ashutosh)
Reviewed-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
>
> Bspec: 60314
> Fixes: 2f4a730fcd2d ("drm/xe/oa: Add OAR support")
> Fixes: 14e077f8006d ("drm/xe/oa: Add OAC support")
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2821
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
> Cc: stable at vger.kernel.org
> ---
> drivers/gpu/drm/xe/xe_oa.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index 6d17f89a132d2..30bfba6c744ca 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c
> @@ -765,8 +765,7 @@ static int xe_oa_configure_oar_context(struct xe_oa_stream *stream, bool enable)
> {
> RING_CONTEXT_CONTROL(stream->hwe->mmio_base),
> regs_offset + CTX_CONTEXT_CONTROL,
> - _MASKED_FIELD(CTX_CTRL_OAC_CONTEXT_ENABLE,
> - enable ? CTX_CTRL_OAC_CONTEXT_ENABLE : 0)
> + _MASKED_BIT_ENABLE(CTX_CTRL_OAC_CONTEXT_ENABLE),
> },
> };
> struct xe_oa_reg reg_lri = { OAR_OACONTROL, oacontrol };
> @@ -798,10 +797,8 @@ static int xe_oa_configure_oac_context(struct xe_oa_stream *stream, bool enable)
> {
> RING_CONTEXT_CONTROL(stream->hwe->mmio_base),
> regs_offset + CTX_CONTEXT_CONTROL,
> - _MASKED_FIELD(CTX_CTRL_OAC_CONTEXT_ENABLE,
> - enable ? CTX_CTRL_OAC_CONTEXT_ENABLE : 0) |
> - _MASKED_FIELD(CTX_CTRL_RUN_ALONE,
> - enable ? CTX_CTRL_RUN_ALONE : 0),
> + _MASKED_BIT_ENABLE(CTX_CTRL_OAC_CONTEXT_ENABLE) |
> + _MASKED_FIELD(CTX_CTRL_RUN_ALONE, enable ? CTX_CTRL_RUN_ALONE : 0),
> },
> };
> struct xe_oa_reg reg_lri = { OAC_OACONTROL, oacontrol };
> --
> 2.41.0
>
More information about the Intel-xe
mailing list