linux/drivers/gpu/drm/xe/xe_debugfs.c
Dave Airlie 27268b872e UAPI Changes:
- Debugfs multi-LRC engine info (Xin Wang, 2 commits)
   Expose multi-LRC engine classes in the debugfs engine info output
   and improve the output readability.
 
 - drm/drm_ras: Add clear-error-counter netlink command to drm_ras
 
 Cross-subsystem Changes:
 
 Core Changes:
 
 - drm/gpusvm: Reject VMAs with VM_IO or VM_PFNMAP when creating SVM ranges
 - drm/i915/display: switch to including common step file directly
 
 Driver Changes:
 
 - Engine initialization cleanup (Matt Roper, 10 commits)
   Clean up engine initialization code inherited from i915 by moving
   hardware programming (CCS enablement, HWSTAM, GFX_MODE, BLIT_CCTL,
   STOP_RING) into the RTP infrastructure.  This makes the programming
   visible and verifiable via debugfs, and applies consistently across
   both normal and execlist init paths.  Also fixes the name/definition
   of GFX_MODE, marks BCS engines as belonging to the GT forcewake
   domain, and drops the now-unused xe_hw_engine_mmio_write32() helper.
 
 - PF fair scheduling auto-provisioning (Michal Wajdeczko, 13 commits)
   Fix several corner cases in SR-IOV PF scheduling policy provisioning,
   then auto-provision PF and all VFs with 16ms execution-quantum and
   preemption-timeout defaults.  This prevents a VF from monopolizing
   the GPU by submitting workloads without gaps, without requiring the
   user to configure sysfs manually.
 
 - System Controller support for CRI/Xe3p (Anoop Vijay + Raag Jadav, 10 commits)
   Add xe_sysctrl infrastructure for communicating with the System
   Controller firmware entity on CRI/Xe3p discrete GPU platforms via a
   mailbox interface.  Includes type definitions, register definitions,
   mailbox communication, initialization, power management, interrupt
   handling, and event dispatch.  Builds on this to add initial RAS
   correctable error handling, using sysctrl interrupts to receive
   threshold-crossed events.
 
 - PXP state machine fixes (Daniele Ceraolo Spurio, 4 commits)
   Fix PXP state machine handling: reject PXP sessions on PTL platforms
   with older GSC firmware that does not support it, fix the restart
   flag not being cleared after jumping back in pxp_start, remove
   incorrect handling of an impossible state during suspend, and clean
   up termination status on failure.
 
 - Reset/wedge/unload corner case fixes (Zhanjun Dong + Matthew Brost, 5 commits)
   Fix memory leaks and fence signal failures that occurred during GPU
   reset, device wedging, and driver unload by forcefully tearing down
   remaining exec queues in GuC submit fini, always killing queues in
   pause/abort, and triggering queue cleanup when not in wedged mode 2.
   Also ensures GuC CT state transitions via STOP before DISABLED.
 
 - Wedge path memory allocation fixes (Matthew Brost, 3 commits)
   Avoid GFP_KERNEL allocations in xe_device_declare_wedged(), which
   runs in the DMA-fence signaling path.  Also drops the
   guc_submit_wedged_fini devm registration from xe_guc_submit_wedge()
   to clean up the wedge shutdown sequence.
 
 - PAT type cleanup and invalid index hardening (Xin Wang, 3 commits)
   Standardize pat_index fields to u16 across the driver, default
   XE_CACHE_NONE_COMPRESSION to XE_PAT_INVALID_IDX (matching
   WB_COMPRESSION), and introduce xe_cache_pat_idx() — a macro helper
   that validates cache_mode bounds and asserts on invalid PAT indices
   before returning the index.
 
 - Reject unsafe PAT indices for CPU cached memory (Jia Yao, 2 commits)
   Reject incoherent (coh_none) PAT indices for CPU cached memory in
   both the madvise ioctl and vm_bind with CPU_ADDR_MIRROR flag, closing
   a security gap where the GPU could bypass CPU caches and observe
   stale or sensitive data.
 
 - OA improvements for CRI device memory (Ashutosh Dixit, 3 commits)
   Move OA buffer access to the xe_map layer to support both system and
   device memory (required for CRI), switch OA buffer mmap to use
   drm_gem_mmap_obj, and implement workaround Wa_14026633728.
 
 - xe_drm.h documentation fixes (Shuicheng Lin, 6 commits)
   Fix multiple documentation issues in the xe_drm.h UAPI header:
   typos, spelling errors, grammar, wrong names and references,
   kernel-doc cross-reference syntax, and broken code examples.
 
 - kernel-doc syntax fixes in xe headers (Shuicheng Lin, 4 commits)
   Fix kernel-doc syntax issues across xe header files: missing '@'
   prefixes on member tags, stale/mismatched member tags, comment
   syntax errors, and type/parameter name mismatches in references.
 
 - Buffer object and DMA-buf resource leak fixes (Shuicheng Lin, 4 commits)
   Fix resource leaks on error paths: DMA-buf attachment leak in
   xe_gem_prime_import(), BO leak in xe_dma_buf_init_obj() on
   allocation failure, and BO leaks in xe_bo_init_locked() on GGTT
   flag validation and unaligned size validation failures.
 
 - Include guard cleanup (Shuicheng Lin, 5 commits)
   Fix and standardize include guards across xe header files: normalize
   double-underscore guards to single, add missing leading/trailing
   underscores, add missing _H suffixes, and add guards to previously
   unprotected headers.
 
 - VF CCS memory pool (Satyanarayana K V P, 2 commits)
   Switch VF CCS read/write operations from the DRM sub-allocator to
   DRM mm, fixing allocation failures in fence-disabled mode where
   the sub-allocator's hole cursor assumption breaks.  Also introduces
   a general BO-backed memory pool with shadow support using drm_mm.
 
 - i915/xe step definition unification (Jani Nikula, 3 commits)
   Complete the migration to the shared intel_step header: switch xe
   from its own xe_step enum to the shared intel_step naming and
   definitions, and update i915 display code to include the common
   step header directly.
 
 - Xe3p GT tuning fixes (3 commits)
   Three Xe3p GT tuning corrections: fix the register offset for
   GAMSTLB_CTRL, stop applying the CCCHKNREG1 tuning from Xe3p onward
   (no longer needed), and mark ROW_CHICKEN5 as a masked register.
 
 - Forcewake cleanup in GT and GuC PC (Raag Jadav, 3 commits)
   Drop a redundant forcewake reference in xe_gt, reorder forcewake
   usage in xe_guc_pc_fini_hw() to avoid a redundant hold, and convert
   xe_guc_pc_stop() to void since it can no longer fail.
 
 - SVM garbage collector fix on close (Matthew Brost, 2 commits)
   Disable the SVM garbage collector work item when an SVM is closed
   to prevent use-after-free when the GC fires after the SVM is freed.
 
 - Admin-only PF mode (Satyanarayana K V P, 2 commits)
   Derive an "admin-only PF" mode flag from xe_device state instead of
   using a local flag, and restrict device query responses when running
   in admin-only PF mode to avoid exposing internal state.
 
 - Enable hwmon energy attributes and accepted power limit for CRI (2 commits)
   Enable energy consumption hwmon attributes for the CRI platform and
   add support for reading the accepted (sustained) power limit via
   hwmon.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRskUM7w1oG5rx2IZO4FpNVCsYGvwUCafNROQAKCRC4FpNVCsYG
 v31cAQCS/7wH9kwyUxQZOgs/HfuZvbgu5IyrGxaDSrHY7twRtAD7BhvkfOcyB9VK
 6M2a7Y+QiVICgwjuDiwXikJalmRBmQE=
 =Y9j3
 -----END PGP SIGNATURE-----

Merge tag 'drm-xe-next-2026-04-30' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next

UAPI Changes:

- Debugfs multi-LRC engine info (Xin Wang, 2 commits)
  Expose multi-LRC engine classes in the debugfs engine info output
  and improve the output readability.

- drm/drm_ras: Add clear-error-counter netlink command to drm_ras

Cross-subsystem Changes:

Core Changes:

- drm/gpusvm: Reject VMAs with VM_IO or VM_PFNMAP when creating SVM ranges
- drm/i915/display: switch to including common step file directly

Driver Changes:

- Engine initialization cleanup (Matt Roper, 10 commits)
  Clean up engine initialization code inherited from i915 by moving
  hardware programming (CCS enablement, HWSTAM, GFX_MODE, BLIT_CCTL,
  STOP_RING) into the RTP infrastructure.  This makes the programming
  visible and verifiable via debugfs, and applies consistently across
  both normal and execlist init paths.  Also fixes the name/definition
  of GFX_MODE, marks BCS engines as belonging to the GT forcewake
  domain, and drops the now-unused xe_hw_engine_mmio_write32() helper.

- PF fair scheduling auto-provisioning (Michal Wajdeczko, 13 commits)
  Fix several corner cases in SR-IOV PF scheduling policy provisioning,
  then auto-provision PF and all VFs with 16ms execution-quantum and
  preemption-timeout defaults.  This prevents a VF from monopolizing
  the GPU by submitting workloads without gaps, without requiring the
  user to configure sysfs manually.

- System Controller support for CRI/Xe3p (Anoop Vijay + Raag Jadav, 10 commits)
  Add xe_sysctrl infrastructure for communicating with the System
  Controller firmware entity on CRI/Xe3p discrete GPU platforms via a
  mailbox interface.  Includes type definitions, register definitions,
  mailbox communication, initialization, power management, interrupt
  handling, and event dispatch.  Builds on this to add initial RAS
  correctable error handling, using sysctrl interrupts to receive
  threshold-crossed events.

- PXP state machine fixes (Daniele Ceraolo Spurio, 4 commits)
  Fix PXP state machine handling: reject PXP sessions on PTL platforms
  with older GSC firmware that does not support it, fix the restart
  flag not being cleared after jumping back in pxp_start, remove
  incorrect handling of an impossible state during suspend, and clean
  up termination status on failure.

- Reset/wedge/unload corner case fixes (Zhanjun Dong + Matthew Brost, 5 commits)
  Fix memory leaks and fence signal failures that occurred during GPU
  reset, device wedging, and driver unload by forcefully tearing down
  remaining exec queues in GuC submit fini, always killing queues in
  pause/abort, and triggering queue cleanup when not in wedged mode 2.
  Also ensures GuC CT state transitions via STOP before DISABLED.

- Wedge path memory allocation fixes (Matthew Brost, 3 commits)
  Avoid GFP_KERNEL allocations in xe_device_declare_wedged(), which
  runs in the DMA-fence signaling path.  Also drops the
  guc_submit_wedged_fini devm registration from xe_guc_submit_wedge()
  to clean up the wedge shutdown sequence.

- PAT type cleanup and invalid index hardening (Xin Wang, 3 commits)
  Standardize pat_index fields to u16 across the driver, default
  XE_CACHE_NONE_COMPRESSION to XE_PAT_INVALID_IDX (matching
  WB_COMPRESSION), and introduce xe_cache_pat_idx() — a macro helper
  that validates cache_mode bounds and asserts on invalid PAT indices
  before returning the index.

- Reject unsafe PAT indices for CPU cached memory (Jia Yao, 2 commits)
  Reject incoherent (coh_none) PAT indices for CPU cached memory in
  both the madvise ioctl and vm_bind with CPU_ADDR_MIRROR flag, closing
  a security gap where the GPU could bypass CPU caches and observe
  stale or sensitive data.

- OA improvements for CRI device memory (Ashutosh Dixit, 3 commits)
  Move OA buffer access to the xe_map layer to support both system and
  device memory (required for CRI), switch OA buffer mmap to use
  drm_gem_mmap_obj, and implement workaround Wa_14026633728.

- xe_drm.h documentation fixes (Shuicheng Lin, 6 commits)
  Fix multiple documentation issues in the xe_drm.h UAPI header:
  typos, spelling errors, grammar, wrong names and references,
  kernel-doc cross-reference syntax, and broken code examples.

- kernel-doc syntax fixes in xe headers (Shuicheng Lin, 4 commits)
  Fix kernel-doc syntax issues across xe header files: missing '@'
  prefixes on member tags, stale/mismatched member tags, comment
  syntax errors, and type/parameter name mismatches in references.

- Buffer object and DMA-buf resource leak fixes (Shuicheng Lin, 4 commits)
  Fix resource leaks on error paths: DMA-buf attachment leak in
  xe_gem_prime_import(), BO leak in xe_dma_buf_init_obj() on
  allocation failure, and BO leaks in xe_bo_init_locked() on GGTT
  flag validation and unaligned size validation failures.

- Include guard cleanup (Shuicheng Lin, 5 commits)
  Fix and standardize include guards across xe header files: normalize
  double-underscore guards to single, add missing leading/trailing
  underscores, add missing _H suffixes, and add guards to previously
  unprotected headers.

- VF CCS memory pool (Satyanarayana K V P, 2 commits)
  Switch VF CCS read/write operations from the DRM sub-allocator to
  DRM mm, fixing allocation failures in fence-disabled mode where
  the sub-allocator's hole cursor assumption breaks.  Also introduces
  a general BO-backed memory pool with shadow support using drm_mm.

- i915/xe step definition unification (Jani Nikula, 3 commits)
  Complete the migration to the shared intel_step header: switch xe
  from its own xe_step enum to the shared intel_step naming and
  definitions, and update i915 display code to include the common
  step header directly.

- Xe3p GT tuning fixes (3 commits)
  Three Xe3p GT tuning corrections: fix the register offset for
  GAMSTLB_CTRL, stop applying the CCCHKNREG1 tuning from Xe3p onward
  (no longer needed), and mark ROW_CHICKEN5 as a masked register.

- Forcewake cleanup in GT and GuC PC (Raag Jadav, 3 commits)
  Drop a redundant forcewake reference in xe_gt, reorder forcewake
  usage in xe_guc_pc_fini_hw() to avoid a redundant hold, and convert
  xe_guc_pc_stop() to void since it can no longer fail.

- SVM garbage collector fix on close (Matthew Brost, 2 commits)
  Disable the SVM garbage collector work item when an SVM is closed
  to prevent use-after-free when the GC fires after the SVM is freed.

- Admin-only PF mode (Satyanarayana K V P, 2 commits)
  Derive an "admin-only PF" mode flag from xe_device state instead of
  using a local flag, and restrict device query responses when running
  in admin-only PF mode to avoid exposing internal state.

- Enable hwmon energy attributes and accepted power limit for CRI (2 commits)
  Enable energy consumption hwmon attributes for the CRI platform and
  add support for reading the accepted (sustained) power limit via
  hwmon.

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
Link: https://patch.msgid.link/afNSeZJHC3X2m3-N@fedora
2026-05-04 18:22:33 +10:00

619 lines
15 KiB