[Intel-gfx] [PULL] drm-intel-gt-next

Joonas Lahtinen
2023-03-16T12:58:35Z

Hi Dave & Daniel,

Here's the first batch of drm-intel-gt-next towards v6.4.

There is an important performance monitoring fix (#6333), more
resiliency to pcode load delay and avoiding caching problems on LLC
systems for ring buffers. Stolen memory probing fix and a
missing register whitelisting for Gen12. Fix for potential OOB access
on SSEU max_subslices array.

Improvements to error capture on GuC, corrections to workarounds
power domains across Gen11/Gen12 with subject to runtime PM.

Then the regular bunch of smaller tweaks, restructuring and cleanups
not to forget documentation, sparse and selftest improvements.

Regards, Joonas

***

drm-intel-gt-next-2023-03-16:

Driver Changes:

- Fix issue #6333: "list_add corruption" and full system lockup from
performance monitoring (Janusz)
- Give the punit time to settle before fatally failing (Aravind, Chris)
- Don't use stolen memory or BAR for ring buffers on LLC platforms (John)
- Add missing ecodes and correct timeline seqno on GuC error captures (John)
- Make sure DSM size has correct 1MiB granularity on Gen12+ (Nirmoy,
Lucas)
- Fix potential SSEU max_subslices array-index-out-of-bounds access on Gen11 (Andrea)
- Whitelist COMMON_SLICE_CHICKEN3 for UMD access on Gen12+ (Matt R.)
- Apply Wa_1408615072/Wa_1407596294 correctly on Gen11 (Matt R)
- Apply LNCF/LBCF workarounds correctly on XeHP SDV/PVC/DG2 (Matt R)
- Implement Wa_1606376872 for Xe_LP (Gustavo)
- Consider GSI offset when doing MCR lookups on Meteorlake+ (Matt R.)
- Add engine TLB invalidation for Meteorlake (Matt R.)
- Fix GSC Driver-FLR completion on Meteorlake (Alan)
- Fix GSC races on driver load/unload on Meteorlake+ (Daniele)
- Disable MC6 for MTL A step (Badal)

- Consolidate TLB invalidation flow (Tvrtko)
- Improve debug GuC/HuC debug messages (Michal Wa., John)
- Move fd_install after last use of fence (Rob)
- Initialize the obj flags for shmem objects (Aravind)
- Fix missing debug object activation (Nirmoy)
- Probe lmem before the stolen portion (Matt A)
- Improve clean up of GuC busyness stats worker (John)
- Fix missing return code checks in GuC submission init (John)
- Annotate two more workaround/tuning registers as MCR on PVC (Matt R)
- Fix GEN8_MISCCPCTL definition and remove unused INF_UNIT_LEVEL_CLKGATE (Lucas)
- Use sysfs_emit() and sysfs_emit_at() (Nirmoy)
- Make kobj_type structures constant (Thomas W.)
- make kobj attributes const on gt/ (Jani)
- Remove the unused virtualized start hack on buddy allocator (Matt A)
- Remove redundant check for DG1 (Lucas)
- Move DG2 tuning to the right function (Lucas)
- Rename dev_priv to i915 for private data naming consistency in gt/ (Andi)
- Remove unnecessary whitelisting of CS_CTX_TIMESTAMP on Xe_HP platforms (Matt R.)
-

- Escape wildcard in method names in kerneldoc (Bagas)
- Selftest improvements (Chris, Jonathan, Tvrtko, Anshuman, Tejas)
- Fix sparse warnings (Jani)
The following changes since commit 003e11ed2ef4af01b808f0f193eaa5a32f32383b:

drm/i915/mtl: Wa_22011802037: don't complain about missing regs on MTL (2023-01-31 15:17:30 -0800)

are available in the Git repository at:

git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2023-03-16

for you to fetch changes up to d2a9692ad4295e227e3352fdbf14b8491b01e1c9:

drm/i915/gt: make kobj attributes const (2023-03-15 12:20:11 +0200)

----------------------------------------------------------------
Driver Changes:

- Fix issue #6333: "list_add corruption" and full system lockup from
performance monitoring (Janusz)
- Give the punit time to settle before fatally failing (Aravind, Chris)
- Don't use stolen memory or BAR for ring buffers on LLC platforms (John)
- Add missing ecodes and correct timeline seqno on GuC error captures (John)
- Make sure DSM size has correct 1MiB granularity on Gen12+ (Nirmoy,
Lucas)
- Fix potential SSEU max_subslices array-index-out-of-bounds access on Gen11 (Andrea)
- Whitelist COMMON_SLICE_CHICKEN3 for UMD access on Gen12+ (Matt R.)
- Apply Wa_1408615072/Wa_1407596294 correctly on Gen11 (Matt R)
- Apply LNCF/LBCF workarounds correctly on XeHP SDV/PVC/DG2 (Matt R)
- Implement Wa_1606376872 for Xe_LP (Gustavo)
- Consider GSI offset when doing MCR lookups on Meteorlake+ (Matt R.)
- Add engine TLB invalidation for Meteorlake (Matt R.)
- Fix GSC Driver-FLR completion on Meteorlake (Alan)
- Fix GSC races on driver load/unload on Meteorlake+ (Daniele)
- Disable MC6 for MTL A step (Badal)

- Consolidate TLB invalidation flow (Tvrtko)
- Improve debug GuC/HuC debug messages (Michal Wa., John)
- Move fd_install after last use of fence (Rob)
- Initialize the obj flags for shmem objects (Aravind)
- Fix missing debug object activation (Nirmoy)
- Probe lmem before the stolen portion (Matt A)
- Improve clean up of GuC busyness stats worker (John)
- Fix missing return code checks in GuC submission init (John)
- Annotate two more workaround/tuning registers as MCR on PVC (Matt R)
- Fix GEN8_MISCCPCTL definition and remove unused INF_UNIT_LEVEL_CLKGATE (Lucas)
- Use sysfs_emit() and sysfs_emit_at() (Nirmoy)
- Make kobj_type structures constant (Thomas W.)
- make kobj attributes const on gt/ (Jani)
- Remove the unused virtualized start hack on buddy allocator (Matt A)
- Remove redundant check for DG1 (Lucas)
- Move DG2 tuning to the right function (Lucas)
- Rename dev_priv to i915 for private data naming consistency in gt/ (Andi)
- Remove unnecessary whitelisting of CS_CTX_TIMESTAMP on Xe_HP platforms (Matt R.)
-

- Escape wildcard in method names in kerneldoc (Bagas)
- Selftest improvements (Chris, Jonathan, Tvrtko, Anshuman, Tejas)
- Fix sparse warnings (Jani)

----------------------------------------------------------------
Alan Previn (1):
drm/i915/gsc: Fix the Driver-FLR completion

Andi Shyti (1):
drm/i915/gt: Rename dev_priv to i915 for private data naming consistency

Andrea Righi (1):
drm/i915/sseu: fix max_subslices array-index-out-of-bounds access

Anshuman Gupta (2):
drm/i915/selftest: Fix engine timestamp and ktime disparity
drm/i915/selftest: Fix ktime_get() and h/w access order

Aravind Iddamsetty (2):
drm/i915: Initialize the obj flags for shmem objects
drm/i915/pcode: Give the punit time to settle before fatally failing

Badal Nilawar (1):
drm/i915/mtl: Disable MC6 for MTL A step

Bagas Sanjaya (1):
drm/i915/doc: Escape wildcard in method names

Chris Wilson (1):
drm/i915/gt: Add selftests for TLB invalidation

Daniele Ceraolo Spurio (2):
drm/i915/gsc: flush the GSC worker before wedging on unload
drm/i915/gsc: Fix race between HW init and GSC FW load

Gustavo Sousa (1):
drm/i915/xelp: Implement Wa_1606376872

Jani Nikula (3):
drm/i915/gt: add sparse lock annotation to avoid warnings
drm/i915/pxp: fix __le64 access to get rid of sparse warning
drm/i915/gt: make kobj attributes const

Janusz Krzysztofik (1):
drm/i915/active: Fix misuse of non-idle barriers as fence trackers

John Harrison (13):
drm/i915/guc: More debug print updates - UC firmware
drm/i915/guc: More debug print updates - GSC firmware
drm/i915/guc: More debug print updates - GuC reg capture
drm/i915/guc: More debug print updates - GuC selftests
drm/i915/guc: More debug print updates - GuC SLPC
drm/i915/guc: More debug print updates - GuC logging
drm/i915: Don't use stolen memory for ring buffers with LLC
drm/i915: Don't use BAR mappings for ring buffers with LLC
drm/i915/guc: Improve clean up of busyness stats worker
drm/i915/guc: Fix missing return code checks in submission init
drm/i915/guc: Fix missing ecodes
drm/i915/guc: Clean up of register capture search
drm/i915: Include timeline seqno in error capture

Jonathan Cavitt (1):
drm/i915/mtl: X-Tile support changes to client blits

Lucas De Marchi (4):
drm/i915: Fix GEN8_MISCCPCTL
drm/i915: Remove unused/wrong INF_UNIT_LEVEL_CLKGATE
drm/i915: Remove redundant check for DG1
drm/i915: Move DG2 tuning to the right function

Matt Roper (7):
drm/i915/pvc: Annotate two more workaround/tuning registers as MCR
drm/i915/gen11: Wa_1408615072/Wa_1407596294 should be on GT list
drm/i915/xehp: LNCF/LBCF workarounds should be on the GT list
drm/i915/xelpmp: Consider GSI offset when doing MCR lookups
drm/i915/mtl: Add engine TLB invalidation
drm/i915: Whitelist COMMON_SLICE_CHICKEN3 for UMD access
drm/i915: Stop whitelisting CS_CTX_TIMESTAMP on Xe_HP platforms

Matthew Auld (2):
drm/i915: probe lmem before the stolen portion
drm/i915/ttm: remove the virtualized start hack

Michal Wajdeczko (2):
drm/i915/guc: Improve debug message on context reset notification
drm/i915/huc: Add and use HuC oriented print macros

Nirmoy Das (3):
drm/i915/gt: Use sysfs_emit() and sysfs_emit_at()
drm/i915: Make sure dsm_size has correct granularity
drm/i915/active: Fix missing debug object activation

Rob Clark (1):
drm/i915: Move fd_install after last use of fence

Tejas Upadhyay (1):
drm/i915/selftest: Remove avoidable init assignment

Thomas Weißschuh (1):
drm/i915: Make kobj_type structures constant

Tvrtko Ursulin (2):
drm/i915: Consolidate TLB invalidation flow
drm/i915/selftests: Fix live_requests for all engines

drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 2 +-
.../drm/i915/gem/selftests/i915_gem_client_blt.c | 19 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 137 +++++++-
drivers/gpu/drm/i915/gt/intel_engine_types.h | 14 +
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 1 +
drivers/gpu/drm/i915/gt/intel_gsc.h | 2 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 165 +++------
drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 9 +-
drivers/gpu/drm/i915/gt/intel_gt_pm.c | 27 --
drivers/gpu/drm/i915/gt/intel_gt_print.h | 3 +
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 16 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs.c | 2 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 8 +
drivers/gpu/drm/i915/gt/intel_reset_types.h | 2 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 6 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 4 +-
drivers/gpu/drm/i915/gt/intel_rps_types.h | 2 +-
drivers/gpu/drm/i915/gt/intel_sseu.h | 2 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 160 +++++----
drivers/gpu/drm/i915/gt/selftest_gt_pm.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_rps.c | 10 +-
drivers/gpu/drm/i915/gt/selftest_tlb.c | 388 +++++++++++++++++++++
drivers/gpu/drm/i915/gt/sysfs_engines.c | 72 ++--
drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.c | 9 +-
drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c | 28 +-
drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h | 2 +
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 78 +++--
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 21 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_print.h | 3 +
drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c | 21 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 61 ++--
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 140 +++++---
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 44 +--
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 56 ++-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 116 +++---
drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 42 +--
.../gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c | 23 +-
.../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c | 11 +-
drivers/gpu/drm/i915/i915_active.c | 28 +-
drivers/gpu/drm/i915/i915_driver.c | 10 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 3 +
drivers/gpu/drm/i915/i915_gpu_error.h | 1 +
drivers/gpu/drm/i915/i915_reg.h | 9 -
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 7 -
drivers/gpu/drm/i915/intel_pcode.c | 35 +-
drivers/gpu/drm/i915/intel_pm.c | 10 +-
drivers/gpu/drm/i915/intel_uncore.c | 13 +-
drivers/gpu/drm/i915/pxp/intel_pxp_huc.c | 2 +-
.../gpu/drm/i915/selftests/i915_live_selftests.h | 1 +
drivers/gpu/drm/i915/selftests/i915_request.c | 134 ++++---
54 files changed, 1283 insertions(+), 701 deletions(-)
create mode 100644 drivers/gpu/drm/i915/gt/selftest_tlb.c