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