From: Ashutosh Dixit <ashutosh.dixit@intel.com>
To: intel-xe@lists.freedesktop.org
Subject: [PATCH 10/16] drm/xe/oa: Disable overrun mode for Xe2+ OAG
Date: Fri, 19 Jan 2024 18:00:20 -0800 [thread overview]
Message-ID: <20240120020026.1261201-11-ashutosh.dixit@intel.com> (raw)
In-Reply-To: <20240120020026.1261201-1-ashutosh.dixit@intel.com>
Xe2+ OAG requires special handling because non-power-of-2 report sizes are
not a sub-multiple of the OA buffer size and there are no partial reports
at the end of the buffer. This issue is present only when overrun mode is
enabled. Avoid adding this special handling by disabling overrun mode for
Xe2+ OAG.
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/regs/xe_oa_regs.h | 1 +
drivers/gpu/drm/xe/xe_oa.c | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/drivers/gpu/drm/xe/regs/xe_oa_regs.h b/drivers/gpu/drm/xe/regs/xe_oa_regs.h
index 00d0c9763e8da..09d6d4f169f52 100644
--- a/drivers/gpu/drm/xe/regs/xe_oa_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_oa_regs.h
@@ -52,6 +52,7 @@
#define OABUFFER_SIZE_4M REG_FIELD_PREP(OABUFFER_SIZE_MASK, 5)
#define OABUFFER_SIZE_8M REG_FIELD_PREP(OABUFFER_SIZE_MASK, 6)
#define OABUFFER_SIZE_16M REG_FIELD_PREP(OABUFFER_SIZE_MASK, 7)
+#define OAG_OABUFFER_DISABLE_OVERRUN_MODE REG_BIT(1)
#define OAG_OABUFFER_MEMORY_SELECT REG_BIT(0) /* 0: PPGTT, 1: GGTT */
#define OAG_OACONTROL XE_REG(0xdaf4)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 745ebeb045e8b..261f513947c5e 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -365,6 +365,14 @@ static void xe_oa_init_oa_buffer(struct xe_oa_stream *stream)
gtt_offset & OAG_OAHEADPTR_MASK);
stream->oa_buffer.head = 0;
+ /*
+ * For Xe2+, OAG buffer is not a multiple of report size and there are no partial
+ * reports at the end of the buffer when overrun mode is enabled. Disable overrun
+ * mode to avoid this issue.
+ */
+ if (GRAPHICS_VER(stream->oa->xe) >= 20 &&
+ stream->hwe->oa_unit->type == DRM_XE_OA_UNIT_TYPE_OAG)
+ oa_buf |= OAG_OABUFFER_DISABLE_OVERRUN_MODE;
/*
* PRM says: "This MMIO must be set before the OATAILPTR register and after the
* OAHEADPTR register. This is to enable proper functionality of the overflow bit".
--
2.41.0
next prev parent reply other threads:[~2024-01-20 2:00 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-20 2:00 [PATCH 00/16] Add OA functionality to Xe Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 01/16] drm/xe/perf/uapi: "Perf" layer to support multiple perf counter stream types Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 02/16] drm/xe/perf/uapi: Add perf_stream_paranoid sysctl Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 03/16] drm/xe/oa/uapi: Add OA data formats Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 04/16] drm/xe/oa/uapi: Initialize OA units Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 05/16] drm/xe/oa/uapi: Add/remove OA config perf ops Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 06/16] drm/xe/oa/uapi: Define and parse OA stream properties Ashutosh Dixit
2024-02-06 22:25 ` Umesh Nerlige Ramappa
2024-02-06 22:58 ` Dixit, Ashutosh
2024-01-20 2:00 ` [PATCH 07/16] drm/xe/oa: OA stream initialization (OAG) Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 08/16] drm/xe/oa/uapi: Expose OA stream fd Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 09/16] drm/xe/oa/uapi: Read file_operation Ashutosh Dixit
2024-01-20 2:00 ` Ashutosh Dixit [this message]
2024-01-20 2:00 ` [PATCH 11/16] drm/xe/oa: Add OAR support Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 12/16] drm/xe/oa: Add OAC support Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 13/16] drm/xe/oa/uapi: Query OA unit properties Ashutosh Dixit
2024-02-06 23:00 ` Umesh Nerlige Ramappa
2024-02-08 6:05 ` Dixit, Ashutosh
2024-01-20 2:00 ` [PATCH 14/16] drm/xe/oa/uapi: OA buffer mmap Ashutosh Dixit
2024-02-06 23:53 ` Umesh Nerlige Ramappa
2024-01-20 2:00 ` [PATCH 15/16] drm/xe/oa: Add MMIO trigger support Ashutosh Dixit
2024-01-20 2:00 ` [PATCH 16/16] drm/xe/oa: Override GuC RC with OA on PVC Ashutosh Dixit
2024-01-20 2:04 ` ✓ CI.Patch_applied: success for Add OA functionality to Xe (rev8) Patchwork
2024-01-20 2:04 ` ✗ CI.checkpatch: warning " Patchwork
2024-01-20 2:05 ` ✓ CI.KUnit: success " Patchwork
2024-01-20 2:12 ` ✓ CI.Build: " Patchwork
2024-01-20 2:13 ` ✗ CI.Hooks: failure " Patchwork
2024-01-20 2:14 ` ✓ CI.checksparse: success " Patchwork
2024-01-20 2:37 ` ✓ CI.BAT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-02-08 5:49 [PATCH 00/16] Add OA functionality to Xe Ashutosh Dixit
2024-02-08 5:49 ` [PATCH 10/16] drm/xe/oa: Disable overrun mode for Xe2+ OAG Ashutosh Dixit
2024-02-13 6:44 [PATCH 00/16] Add OA functionality to Xe Ashutosh Dixit
2024-02-13 6:44 ` [PATCH 10/16] drm/xe/oa: Disable overrun mode for Xe2+ OAG Ashutosh Dixit
2024-03-05 5:32 [PATCH 00/16] Add OA functionality to Xe Ashutosh Dixit
2024-03-05 5:32 ` [PATCH 10/16] drm/xe/oa: Disable overrun mode for Xe2+ OAG Ashutosh Dixit
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=20240120020026.1261201-11-ashutosh.dixit@intel.com \
--to=ashutosh.dixit@intel.com \
--cc=intel-xe@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox