[PULL] drm-xe-next

Rodrigo Vivi
2025-06-18T20:05:45Z

Hi Dave and Sima,

Here goes our first drm-xe-next pull-request towards 6.17.

The important part to mention is on the top of the tag below:
- uAPI addition for Media OA
- The restoration of a fix accidentally missed in a merge commit
- GPUSVM changes

Also, SVM enabling work itself, platform enabling and SRIOV work
is a big highlights in the driver patches.

Thanks,
Rodrigo.

drm-xe-next-2025-06-18:
UAPI Changes:
- Expose media OA units (Ashutosh)

Merge:
- Restore GuC submit UAF fix around queue destruction
accidentally removed in a drm-xe-fixes merge (Auld)

Core Changes:
- drm/gpusvm: Introduce devmem_only flag for allocation (Himal)
- drm/gpusvm: Add timeslicing support to GPU SVM (Brost)

Driver Changes:
- Make gem shrinker drm managed (Thomas)
- SRIOV VF Post-migration recovery of GGTT nodes and CTB (Tomasz)
- Some W/A additions and updates (Aradhya, Shekhar, Vinay, Daniele)
- Prefetch Support for svm ranges (Himal, Brost)
- Don't allocate managed BO for each policy change (Michal)
- Simplify and fix diff calculation in GuC submit (Lucas)
- Track FAST_REQ GuC H2Gs to report where errors came from (John)
- SRIOV PF: Don't allow LMEM provisioning if LMTT isn't available (Piotr)
- Check if all domains awake for MOCS dump (Tejas)
- Make creation of SLPC debugfs files conditional (Aradhya)
- Default auto_link_downgrade status to false (Aradhya)
- Use xe_mmio_read32() to read mtcfg register (Shuicheng)
- Updates in PCI ID tables (Atwood, Shekhar)
- SRIOV VF: Fail migration recovery if fixups needed but not supported (Tomasz)
- Add missing documentation around freq and RPa (Rodrigo)
- Some other SVM related fixes (Himal, Auld, Brost, Maarten)
- Allow to trigger GT resets using debugfs writes (Michal)
- Optimise CCS case for WB pages (Auld)
- Create LRC BO without VM (Niranjana)
- Initialize MOCS index early (Bala)
- HWMON fixes for BMG (Karthik, Lucas)
- Drop redundant conversion to bool (Raag)
- Rework eviction rejection of bound external bos (Thomas)
- Stop re-submitting signalled jobs (Auld)
- Small fixes and cleanups for PXP (Daniele)
- Convert some print messages to GT-oriented ones (Michal)
- Resend potentially lost GuC H2G MMIO request (Michal)
- Add configfs to load with fewer engines (Lucas)
- Remove unmatched xe_vm_unlock from __xe_exec_queue_init (Maciej)
- SRIOV VF: Small updates around GGTT handling (Michal)
- Make VMA tile_present, tile_invalidated access rules clear (Brost)
- Xe3 Tuning: Disable NULL query for Anyhit Shader (Nitin)
- Fixes for VF GuC version (Daniele)
- Don't store the xe device pointer inside xe_ttm_tt (Dave)
- Small improvements in topology code (Michal)
- Stop relying on GGTT internals (Maarten)
- GSM size should be constant on most platforms (Roper)
- Reorder 'Get pages failed' message (Brost)
- WA BB related fixes and improvements (Lucas, Brost)
- Fix early wedge on GuC load failure (Daniele)
- Add helper function to inject fault into ct_dead_capture (Satyanarayana)
- Determine ATS / PTA programming during early sw init (Roper)
- Consolidate PAT programming logic for pre-Xe2 and post-Xe2 (Roper)
- Fix kconfig prompt (Lucas)
- Convert xe_pci tests to parametrized tests (Michal)
- Do not kill VM in PT code on -ENODATA (Brost)
- Move LRC_ENGINE_ID_PPHWSP_OFFSET outside of parallel offset (Brost)
- Enable media OA (Ashutosh)
- GuC log level tuning (Lucas)
- Add xe_vm_has_valid_gpu_mapping helper (Brost)
- Opportunistically skip TLB invalidaion on unbind (Brost)
The following changes since commit 19272b37aa4f83ca52bdf9c16d5d81bdd1354494:

Linux 6.16-rc1 (2025-06-08 13:44:43 -0700)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2025-06-18

for you to fetch changes up to 8aa7306631f088881759398972d503757cf0c901:

drm/xe/hwmon: Fix xe_hwmon_power_max_write (2025-06-18 12:26:27 -0400)

----------------------------------------------------------------
UAPI Changes:
- Expose media OA units (Ashutosh)

Merge:
- Restore GuC submit UAF fix around queue destruction
accidentally removed in a drm-xe-fixes merge (Auld)

Core Changes:
- drm/gpusvm: Introduce devmem_only flag for allocation (Himal)
- drm/gpusvm: Add timeslicing support to GPU SVM (Brost)

Driver Changes:
- Make gem shrinker drm managed (Thomas)
- SRIOV VF Post-migration recovery of GGTT nodes and CTB (Tomasz)
- Some W/A additions and updates (Aradhya, Shekhar, Vinay, Daniele)
- Prefetch Support for svm ranges (Himal, Brost)
- Don't allocate managed BO for each policy change (Michal)
- Simplify and fix diff calculation in GuC submit (Lucas)
- Track FAST_REQ GuC H2Gs to report where errors came from (John)
- SRIOV PF: Don't allow LMEM provisioning if LMTT isn't available (Piotr)
- Check if all domains awake for MOCS dump (Tejas)
- Make creation of SLPC debugfs files conditional (Aradhya)
- Default auto_link_downgrade status to false (Aradhya)
- Use xe_mmio_read32() to read mtcfg register (Shuicheng)
- Updates in PCI ID tables (Atwood, Shekhar)
- SRIOV VF: Fail migration recovery if fixups needed but not supported (Tomasz)
- Add missing documentation around freq and RPa (Rodrigo)
- Some other SVM related fixes (Himal, Auld, Brost, Maarten)
- Allow to trigger GT resets using debugfs writes (Michal)
- Optimise CCS case for WB pages (Auld)
- Create LRC BO without VM (Niranjana)
- Initialize MOCS index early (Bala)
- HWMON fixes for BMG (Karthik, Lucas)
- Drop redundant conversion to bool (Raag)
- Rework eviction rejection of bound external bos (Thomas)
- Stop re-submitting signalled jobs (Auld)
- Small fixes and cleanups for PXP (Daniele)
- Convert some print messages to GT-oriented ones (Michal)
- Resend potentially lost GuC H2G MMIO request (Michal)
- Add configfs to load with fewer engines (Lucas)
- Remove unmatched xe_vm_unlock from __xe_exec_queue_init (Maciej)
- SRIOV VF: Small updates around GGTT handling (Michal)
- Make VMA tile_present, tile_invalidated access rules clear (Brost)
- Xe3 Tuning: Disable NULL query for Anyhit Shader (Nitin)
- Fixes for VF GuC version (Daniele)
- Don't store the xe device pointer inside xe_ttm_tt (Dave)
- Small improvements in topology code (Michal)
- Stop relying on GGTT internals (Maarten)
- GSM size should be constant on most platforms (Roper)
- Reorder 'Get pages failed' message (Brost)
- WA BB related fixes and improvements (Lucas, Brost)
- Fix early wedge on GuC load failure (Daniele)
- Add helper function to inject fault into ct_dead_capture (Satyanarayana)
- Determine ATS / PTA programming during early sw init (Roper)
- Consolidate PAT programming logic for pre-Xe2 and post-Xe2 (Roper)
- Fix kconfig prompt (Lucas)
- Convert xe_pci tests to parametrized tests (Michal)
- Do not kill VM in PT code on -ENODATA (Brost)
- Move LRC_ENGINE_ID_PPHWSP_OFFSET outside of parallel offset (Brost)
- Enable media OA (Ashutosh)
- GuC log level tuning (Lucas)
- Add xe_vm_has_valid_gpu_mapping helper (Brost)
- Opportunistically skip TLB invalidaion on unbind (Brost)

----------------------------------------------------------------
Aradhya Bhatia (3):
drm/xe/xe2hpg: Add Wa_22021007897
drm/xe/guc: Make creation of SLPC debugfs files conditional
drm/xe: Default auto_link_downgrade status to false

Arnd Bergmann (1):
drm/xe/vsec: fix CONFIG_INTEL_VSEC dependency

Ashutosh Dixit (5):
drm/xe/oa/uapi: Expose media OA units
drm/xe/oa: Print hwe to OA unit mapping
drm/xe/oa: Introduce stream->oa_unit
drm/xe/oa: Assign hwe for OAM_SAG
drm/xe/oa: Enable OAM latency measurement

Balasubramani Vivekanandan (1):
drm/xe/mocs: Initialize MOCS index early

Daniele Ceraolo Spurio (9):
drm/xe/pxp: Use the correct define in the set_property_funcs array
drm/xe/pxp: Clarify PXP queue creation behavior if PXP is not ready
drm/xe/pxp: Decouple queue addition from PXP start
drm/xe/uc: Prepare uc_fw_version for storing the VF ABI version
drm/xe/vf: Boostrap all GTs immediately after MMIO init
drm/xe/vf: Use uc_fw_version to store the negotiated GuC ABI
drm/xe/vf: Store the GuC FW info in guc->fw
drm/xe: Fix early wedge on GuC load failure
drm/xe: Extend WA 14018094691 to BMG

Dave Airlie (1):
drm/xe: don't store the xe device pointer inside xe_ttm_tt

Himal Prasad Ghimiray (18):
drm/gpusvm: Introduce devmem_only flag for allocation
drm/xe: Introduce xe_vma_op_prefetch_range struct for prefetch of ranges
drm/xe: Make xe_svm_alloc_vram public
drm/xe/svm: Helper to add tile masks to svm ranges
drm/xe/svm: Make to_xe_range a public function
drm/xe/svm: Make xe_svm_range_* end/start/size public
drm/xe/vm: Update xe_vma_ops_incr_pt_update_ops to take an increment value
drm/xe/vm: Add an identifier in xe_vma_ops for svm prefetch
drm/xe: Rename lookup_vma function to xe_find_vma_by_addr
drm/xe/svm: Refactor usage of drm_gpusvm* function in xe_svm
drm/xe/svm: Make xe_svm_range_needs_migrate_to_vram() public
drm/xe/svm: Add xe_svm_range_validate() and xe_svm_range_migrate_to_smem()
drm/gpusvm: Introduce drm_gpusvm_find_vma_start() function
drm/xe/svm: Add xe_svm_find_vma_start() helper
drm/xe/svm: Implement prefetch support for SVM ranges
drm/xe/vm: Add debug prints for SVM range prefetch
drm/xe/svm: Avoid duplicate eviction on get_pages() failure
drm/xe/vm: Add a helper xe_vm_range_tilemask_tlb_invalidation()

John Harrison (4):
drm/xe/guc: Remove double blank line
drm/xe/guc: Add missing H2G error code definitions
drm/xe/guc: Rename CONFIG_XE_LARGE_GUC_BUFFER
drm/xe/guc: Track FAST_REQ H2Gs to report where errors came from

Karthik Poosa (7):
drm/xe/hwmon: Add support to manage power limits though mailbox
drm/xe/hwmon: Move card reactive critical power under channel card
drm/xe/hwmon: Add support to manage PL2 though mailbox
drm/xe/hwmon: Expose powerX_cap_interval
drm/xe/hwmon: Read energy status from PMT
drm/xe/hwmon: Expose power sysfs entries based on firmware support
drm/xe/hwmon: Fix xe_hwmon_power_max_write

Lucas De Marchi (13):
drm/xe/guc_submit: Simplify and fix diff calculation
drm/xe/hwmon: Simplify and fix 32b wrap
drm/xe/configfs: Drop trailing semicolons
drm/xe: Convert "fused off" messages to be gt-based
drm/xe: Allow to disable engines
drm/xe/configfs: Add attribute to disable engines
drm/xe/configfs: Add internal API to documentation
drm/xe/lrc: Use a temporary buffer for WA BB
drm/xe/lrc: Prepare WA BB setup for more users
drm/xe: Fix kconfig prompt
drm/xe/guc: Default log level to non-verbose
drm/xe: Annotate default for guc_log_level param
drm/xe: Fix memset on iomem

Maarten Lankhorst (12):
drm/xe/svm: Fix regression disallowing 64K SVM migration
drm/xe: Remove IOSF_MBI select.
drm/xe: Use xe_ggtt_map_bo_unlocked for resume
drm/xe: Add xe_ggtt_might_lock
drm/xe: Add xe_ggtt_alloc
drm/xe/display: Remove dereferences of ggtt for tile id
drm/xe/ggtt: Seperate flags and address in PTE encoding
drm/xe/display: Dont poke into GGTT internals to fill a DPT
drm/xe/display: Convert GGTT mapping to use pte_encode_flags
drm/xe: Remove pte_encode_bo callback
drm/xe: Implement a helper for reading out a GGTT PTE at a specified offset
drm/xe: Do not rely on GGTT internals in xe_guc_buf kunit tests

Maciej Patelczyk (1):
drm/xe: remove unmatched xe_vm_unlock() from __xe_exec_queue_init()

Matt Atwood (1):
drm/xe/ptl: Update the PTL pci id table

Matt Roper (3):
drm/xe: GSM size should be constant on most platforms
drm/xe/pat: Determine ATS / PTA programming during early sw init
drm/xe/pat: Consolidate PAT programming logic for pre-Xe2 and post-Xe2

Matthew Auld (5):
drm/xe/bo: optimise CCS case for WB pages
drm/xe/vm: move rebind_work init earlier
drm/xe/vm: move xe_svm_init() earlier
drm/xe/sched: stop re-submitting signalled jobs
drm/xe/guc_submit: add back fix

Matthew Brost (14):
drm/xe: Strict migration policy for atomic SVM faults
drm/gpusvm: Add timeslicing support to GPU SVM
drm/xe: Timeslice GPU on atomic SVM fault
drm/xe: Add atomic_svm_timeslice_ms debugfs entry
drm/xe: Do not warn on SVM migration failing because of 64k requirements
drm/xe: Make VMA tile_present, tile_invalidated access rules clear
drm/xe: Reorder 'Get pages failed' message
drm/xe: Don't use drm exec locking in SVM pagefaults
drm/xe: Use WRITE_ONCE for range->tile_invalidated update
drm/xe: Make WA BB part of LRC BO
drm/xe: Do not kill VM in PT code on -ENODATA
drm/xe: Move LRC_ENGINE_ID_PPHWSP_OFFSET outside of parallel offset
drm/xe: Add xe_vm_has_valid_gpu_mapping helper
drm/xe: Opportunistically skip TLB invalidaion on unbind

Michal Wajdeczko (15):
drm/xe/guc: Unblock GuC buffer cache for all modes
drm/xe/guc: Don't allocate managed BO for each policy change
drm/xe: Allow to trigger GT resets using debugfs writes
drm/xe: Convert page fault messages to be GT-oriented
drm/xe: Use GT-oriented printer to dump topology on init
drm/xe/guc: Resend potentially lost H2G MMIO request
drm/xe/vf: Introduce helpers to access GGTT configuration
drm/xe/vf: Move tile-related VF functions to separate file
drm/xe/vf: Add sanity check for GGTT configuration
drm/xe/topology: Simplify code for loading DSS mask
drm/xe/topology: Use register array size instead magic number
drm/xe/topology: Stop trying to fix programming mistakes
drm/xe/uc: Use GT-oriented firmware messages
drm/xe/tests: Drop unused xe_device_fn typedef
drm/xe/tests: Convert xe_pci tests to parametrized tests

Niranjana Vishwanathapura (1):
drm/xe: Create LRC BO without VM

Nitin Gote (1):
drm/xe/xe3: Disable null query for anyhit shader

Piotr Piórkowski (1):
drm/xe/pf: Don't allow LMEM provisioning if LMTT isn't available on the device

Raag Jadav (1):
drm/xe: drop redundant conversion to bool

Rodrigo Vivi (2):
drm/xe: Make xe_gt_freq part of the Documentation
drm/xe: Add missing documentation of rpa_freq

Satyanarayana K V P (1):
drm/xe: Add helper function to inject fault into ct_dead_capture()

Shekhar Chauhan (3):
drm/xe/xe2_hpg: Add PCI IDs for xe2_hpg
drm/xe/xe2_hpg: Add set of workarounds
drm/xe/xe2_hpg: Define additional Xe2_HPG GMD_ID

Shuicheng Lin (1):
drm/xe: Use xe_mmio_read32() to read mtcfg register

Tejas Upadhyay (1):
drm/xe/mocs: Check if all domains awake

Thomas Hellström (4):
drm/xe: Fix the gem shrinker name
drm/xe: Make the gem shrinker drm managed
drm/xe: Rework eviction rejection of bound external bos
Merge drm/drm-next into drm-xe-next

Tomasz Lis (5):
drm/xe/vf: Divide GGTT ballooning into allocation and insertion
drm/xe/vf: Shifting GGTT area post migration
drm/xe/guc: Introduce enum with offsets for context register H2Gs
drm/xe/vf: Fixup CTB send buffer messages after migration
drm/xe/vf: Fail migration recovery if fixups needed but platform not supported

Umesh Nerlige Ramappa (3):
drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value
drm/xe: Save the gt pointer in lrc and drop the tile
drm/xe: Add WA BB to capture active context utilization

Vinay Belgaumkar (3):
drm/xe/guc: Ignore GuC CT errors when wedged
drm/xe/bmg: Update Wa_16023588340
drm/xe/bmg: Update Wa_14022085890

.../ABI/testing/sysfs-driver-intel-xe-hwmon | 48 +++
Documentation/gpu/xe/xe_configfs.rst | 10 +-
drivers/gpu/drm/drm_gpusvm.c | 34 ++
drivers/gpu/drm/xe/Kconfig | 6 +-
drivers/gpu/drm/xe/Kconfig.debug | 11 +-
drivers/gpu/drm/xe/Makefile | 3 +-
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 31 ++
drivers/gpu/drm/xe/abi/guc_errors_abi.h | 14 +-
drivers/gpu/drm/xe/display/xe_fb_pin.c | 50 ++-
drivers/gpu/drm/xe/display/xe_plane_initial.c | 6 +-
drivers/gpu/drm/xe/regs/xe_mchbar_regs.h | 1 +
drivers/gpu/drm/xe/regs/xe_oa_regs.h | 3 +
drivers/gpu/drm/xe/regs/xe_pcode_regs.h | 2 -
drivers/gpu/drm/xe/regs/xe_pmt.h | 5 +
drivers/gpu/drm/xe/tests/xe_bo.c | 4 +-
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c | 11 +-
drivers/gpu/drm/xe/tests/xe_pci.c | 69 ++--
drivers/gpu/drm/xe/tests/xe_pci_test.c | 24 +-
drivers/gpu/drm/xe/tests/xe_pci_test.h | 11 +-
drivers/gpu/drm/xe/xe_bo.c | 69 ++--
drivers/gpu/drm/xe/xe_bo_evict.c | 4 +-
drivers/gpu/drm/xe/xe_configfs.c | 160 +++++++++
drivers/gpu/drm/xe/xe_configfs.h | 11 +-
drivers/gpu/drm/xe/xe_debugfs.c | 38 ++
drivers/gpu/drm/xe/xe_device.c | 21 +-
drivers/gpu/drm/xe/xe_device.h | 2 +
drivers/gpu/drm/xe/xe_device_types.h | 7 +
drivers/gpu/drm/xe/xe_drv.h | 2 +-
drivers/gpu/drm/xe/xe_ggtt.c | 249 +++++++++++---
drivers/gpu/drm/xe/xe_ggtt.h | 24 +-
drivers/gpu/drm/xe/xe_ggtt_types.h | 4 +-
drivers/gpu/drm/xe/xe_gt.c | 6 +-
drivers/gpu/drm/xe/xe_gt_debugfs.c | 96 ++++--
drivers/gpu/drm/xe/xe_gt_pagefault.c | 106 +++---
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 6 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 4 +-
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 297 ++++++++--------
drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 9 +-
drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 21 +-
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 32 +-
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h | 3 -
drivers/gpu/drm/xe/xe_gt_topology.c | 44 +--
drivers/gpu/drm/xe/xe_guc.c | 19 +-
drivers/gpu/drm/xe/xe_guc_ads.c | 27 +-
drivers/gpu/drm/xe/xe_guc_buf.c | 4 -
drivers/gpu/drm/xe/xe_guc_ct.c | 330 ++++++++++++++++--
drivers/gpu/drm/xe/xe_guc_ct.h | 7 +
drivers/gpu/drm/xe/xe_guc_ct_types.h | 15 +
drivers/gpu/drm/xe/xe_guc_engine_activity.c | 2 +-
drivers/gpu/drm/xe/xe_guc_log.h | 2 +-
drivers/gpu/drm/xe/xe_guc_pc.c | 17 +-
drivers/gpu/drm/xe/xe_guc_submit.c | 25 +-
drivers/gpu/drm/xe/xe_hw_engine.c | 37 +-
drivers/gpu/drm/xe/xe_hwmon.c | 264 +++++++++-----
drivers/gpu/drm/xe/xe_lrc.c | 99 ++++--
drivers/gpu/drm/xe/xe_lrc_types.h | 3 -
drivers/gpu/drm/xe/xe_map.h | 18 +
drivers/gpu/drm/xe/xe_module.c | 11 +-
drivers/gpu/drm/xe/xe_oa.c | 212 +++++++++---
drivers/gpu/drm/xe/xe_oa_types.h | 6 +
drivers/gpu/drm/xe/xe_pat.c | 44 ++-
drivers/gpu/drm/xe/xe_pci.c | 1 +
drivers/gpu/drm/xe/xe_pt.c | 135 ++++++--
drivers/gpu/drm/xe/xe_pxp.c | 153 +++++----
drivers/gpu/drm/xe/xe_query.c | 4 +-
drivers/gpu/drm/xe/xe_shrinker.c | 37 +-
drivers/gpu/drm/xe/xe_shrinker.h | 4 +-
drivers/gpu/drm/xe/xe_sriov_vf.c | 58 ++++
drivers/gpu/drm/xe/xe_svm.c | 308 ++++++++++-------
drivers/gpu/drm/xe/xe_svm.h | 138 ++++++++
drivers/gpu/drm/xe/xe_tile.c | 6 +-
drivers/gpu/drm/xe/xe_tile_sriov_vf.c | 254 ++++++++++++++
drivers/gpu/drm/xe/xe_tile_sriov_vf.h | 18 +
drivers/gpu/drm/xe/xe_tuning.c | 5 +
drivers/gpu/drm/xe/xe_uc_fw.c | 56 ++-
drivers/gpu/drm/xe/xe_uc_fw_types.h | 2 +
drivers/gpu/drm/xe/xe_vm.c | 381 ++++++++++++++++++---
drivers/gpu/drm/xe/xe_vm.h | 24 ++
drivers/gpu/drm/xe/xe_vm_types.h | 26 +-
drivers/gpu/drm/xe/xe_vsec.c | 4 +-
drivers/gpu/drm/xe/xe_vsec.h | 4 +
drivers/gpu/drm/xe/xe_wa.c | 46 ++-
drivers/gpu/drm/xe/xe_wa_oob.rules | 11 +-
include/drm/drm_gpusvm.h | 5 +
include/drm/intel/pciids.h | 7 +-
include/uapi/drm/xe_drm.h | 4 +
86 files changed, 3249 insertions(+), 1142 deletions(-)
create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_vf.c
create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_vf.h