From: Gustavo Sousa <gustavo.sousa@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: Gustavo Sousa <gustavo.sousa@intel.com>,
Matt Roper <matthew.d.roper@intel.com>,
Michal Wajdeczko <michal.wajdeczko@intel.com>
Subject: [PATCH v2 0/8] Fix MCR inconsistencies in RTP tables
Date: Fri, 08 May 2026 18:42:30 -0300 [thread overview]
Message-ID: <20260508-rtp-mcr-check-v2-0-9897b147a5d2@intel.com> (raw)
The Xe driver uses struct xe_reg as base type to represent a register
definition, and defines struct xe_reg_mcr as a sort of subtype to
represent multicast replicated (MCR) registers. It uses this subtyping
to "force" the use of the correct MCR-based API for MMIO operations on
MCR registers.
In regular driver code, usage of those MCR registers usually need some
reasoning about whether the access will need to be steered or a
multicast; and the correct MCR API will be selected.
For RTP tables, on the other hand, that's not the case. The developer
when defining an action the developer can either select a regular or a
MCR register and the register save/restore logic will make the selection
between regular vs MCR MMIO access depending on the register instance
defined in the RTP action.
That allows some mistakes to go unnoticed: a non-MCR register instance
could be used for an RTP action against a platform where such a register
is actually MCR; and vice-versa.
This series fixes those mistakes.
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
Changes in v2:
- Incorporated review feedback. Please see individual patches for the
respective changelogs.
- Dropped inclusion of hw_engines in xe_wa test. We will implement a more
focused test to check for MCR inconsistencies in the future, which will
iterate over all applicable RTP tables.
- As a result of the above, dropped MMIO interception patches, as they became
unnecessary.
- Link to v1: https://patch.msgid.link/20260116-rtp-mcr-check-v1-0-d420b9c1a327@intel.com
---
Gustavo Sousa (8):
drm/xe: Define CACHE_MODE_1 as MCR register
drm/xe: Define and use MCR version of COMMON_SLICE_CHICKEN1
drm/xe: Define and use MCR version of COMMON_SLICE_CHICKEN4
drm/xe/kunit: Add xe_kunit_helper_is_live_test()
drm/xe: Extract xe_hw_engine_setup_reg_lrc()
drm/xe/kunit: Use KUNIT_EXPECT_EQ() in xe_wa_gt()
drm/xe/mcr: Extract reg_in_steering_type_ranges()
drm/xe/reg_sr: Do sanity check for MCR vs non-MCR
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 4 +-
drivers/gpu/drm/xe/tests/xe_kunit_helpers.c | 26 +++++++++++
drivers/gpu/drm/xe/tests/xe_kunit_helpers.h | 4 ++
drivers/gpu/drm/xe/tests/xe_rtp_test.c | 71 ++++++++++++++++++++++++++---
drivers/gpu/drm/xe/tests/xe_wa_test.c | 14 +++++-
drivers/gpu/drm/xe/xe_gt.c | 8 ++--
drivers/gpu/drm/xe/xe_gt_mcr.c | 67 +++++++++++++++++++--------
drivers/gpu/drm/xe/xe_gt_mcr.h | 1 +
drivers/gpu/drm/xe/xe_hw_engine.c | 15 +++++-
drivers/gpu/drm/xe/xe_hw_engine.h | 2 +-
drivers/gpu/drm/xe/xe_reg_sr.c | 36 +++++++++++++++
drivers/gpu/drm/xe/xe_tuning.c | 2 +-
drivers/gpu/drm/xe/xe_wa.c | 6 +--
13 files changed, 216 insertions(+), 40 deletions(-)
---
base-commit: 18d2011d95002966c64980ab06f36ee9211d496c
change-id: 20260112-rtp-mcr-check-f976cb1adf94
Best regards,
--
Gustavo Sousa <gustavo.sousa@intel.com>
next reply other threads:[~2026-05-08 21:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-08 21:42 Gustavo Sousa [this message]
2026-05-08 21:42 ` [PATCH v2 1/8] drm/xe: Define CACHE_MODE_1 as MCR register Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 2/8] drm/xe: Define and use MCR version of COMMON_SLICE_CHICKEN1 Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 3/8] drm/xe: Define and use MCR version of COMMON_SLICE_CHICKEN4 Gustavo Sousa
2026-05-13 22:35 ` Matt Roper
2026-05-08 21:42 ` [PATCH v2 4/8] drm/xe/kunit: Add xe_kunit_helper_is_live_test() Gustavo Sousa
2026-05-11 10:37 ` Jani Nikula
2026-05-11 11:45 ` Gustavo Sousa
2026-05-11 12:03 ` Jani Nikula
2026-05-11 12:30 ` Gustavo Sousa
2026-05-11 20:33 ` Rodrigo Vivi
2026-05-11 21:01 ` Gustavo Sousa
2026-05-12 19:00 ` Rodrigo Vivi
2026-05-12 19:26 ` Michal Wajdeczko
2026-05-13 13:03 ` Gustavo Sousa
2026-05-13 12:58 ` Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 5/8] drm/xe: Extract xe_hw_engine_setup_reg_lrc() Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 6/8] drm/xe/kunit: Use KUNIT_EXPECT_EQ() in xe_wa_gt() Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 7/8] drm/xe/mcr: Extract reg_in_steering_type_ranges() Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 8/8] drm/xe/reg_sr: Do sanity check for MCR vs non-MCR Gustavo Sousa
2026-05-13 22:49 ` Matt Roper
2026-05-08 21:50 ` ✓ CI.KUnit: success for Fix MCR inconsistencies in RTP tables (rev2) Patchwork
2026-05-08 23:04 ` ✓ Xe.CI.BAT: " Patchwork
2026-05-09 10:54 ` ✗ Xe.CI.FULL: failure " Patchwork
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=20260508-rtp-mcr-check-v2-0-9897b147a5d2@intel.com \
--to=gustavo.sousa@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.d.roper@intel.com \
--cc=michal.wajdeczko@intel.com \
/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