Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/8] Fix MCR inconsistencies in RTP tables
@ 2026-05-08 21:42 Gustavo Sousa
  2026-05-08 21:42 ` [PATCH v2 1/8] drm/xe: Define CACHE_MODE_1 as MCR register Gustavo Sousa
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Gustavo Sousa @ 2026-05-08 21:42 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Matt Roper, Michal Wajdeczko

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>


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2026-05-13 22:50 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-08 21:42 [PATCH v2 0/8] Fix MCR inconsistencies in RTP tables Gustavo Sousa
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox