Hi Dave, Simona This is the last feature drm-xe-next PR towards 6.19.
Note that the PR of 25-11-05 was never pulled, so this one incorporates that one as well. Please let me know if you want this done another way. Thanks, Thomas drm-xe-next-2025-11-14: UAPI Changes: Limit number of jobs per exec queue (Shuicheng) Add sriov_admin sysfs tree (Michal) Driver Changes: Fix an uninitialized value (Thomas) Expose a residency counter through debugfs (Mohammed Thasleem) Workaround enabling and improvement (Tapani, Tangudu) More Crescent Island-specific support (Sk Anirban, Lucas) PAT entry dump improvement (Xin) Inline gt_reset in the worker (Lucas) Synchronize GT reset with device unbind (Balasubramani) Do clean shutdown also when using flr (Jouni) Fix serialization on burst of unbinds (Matt Brost) Pagefault Refactor (Matt Brost) Remove some unused code (Gwan-gyeong) Avoid TOCTOU when montoring throttle reasons (Lucas) Add/extend workaround (Nitin) SRIOV migration work / plumbing (Michal Wajdeczko, Michal Winiarski, Lukasz) Drop debug flag requirement for VF resource fixup Fix MTL vm_max_level (Rodrigo) Changes around TILE_ADDR_RANGE for platform compatibility (Fei, Lucas) Add runtime registers for GFX ver >= 35 (Piotr) Kerneldoc fix (Kriish) Rework pcode error mapping (Lucas) Allow lockdown the PF (Michal) Eliminate GUC code caching of some frequency values (Sk) Improvements around forcewake referencing (Matt Roper) The following changes since commit 4504e780689245f01bee6ee4c19c74051bd87593: drm/xe/pf: Access VF's register using dedicated MMIO view (2025-10-27 17:22:18 +0100) are available in the Git repository at: https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2025-11-14 for you to fetch changes up to 6bcb180f6f4585554cefbe8c412aa8879b15f07a: drm/xe/oa: Store forcewake reference in stream structure (2025-11-13 14:05:51 -0800) ---------------------------------------------------------------- UAPI Changes: Limit number of jobs per exec queue (Shuicheng) Add sriov_admin sysfs tree (Michal) Driver Changes: Fix an uninitialized value (Thomas) Expose a residency counter through debugfs (Mohammed Thasleem) Workaround enabling and improvement (Tapani, Tangudu) More Crescent Island-specific support (Sk Anirban, Lucas) PAT entry dump improvement (Xin) Inline gt_reset in the worker (Lucas) Synchronize GT reset with device unbind (Balasubramani) Do clean shutdown also when using flr (Jouni) Fix serialization on burst of unbinds (Matt Brost) Pagefault Refactor (Matt Brost) Remove some unused code (Gwan-gyeong) Avoid TOCTOU when montoring throttle reasons (Lucas) Add/extend workaround (Nitin) SRIOV migration work / plumbing (Michal Wajdeczko, Michal Winiarski, Lukasz) Drop debug flag requirement for VF resource fixup Fix MTL vm_max_level (Rodrigo) Changes around TILE_ADDR_RANGE for platform compatibility (Fei, Lucas) Add runtime registers for GFX ver >= 35 (Piotr) Kerneldoc fix (Kriish) Rework pcode error mapping (Lucas) Allow lockdown the PF (Michal) Eliminate GUC code caching of some frequency values (Sk) Improvements around forcewake referencing (Matt Roper) ---------------------------------------------------------------- Balasubramani Vivekanandan (2): drm/xe/gt: Synchronize GT reset with device unbind drm/xe/guc: Synchronize Dead CT worker with unbind Fei Yang (1): drm/xe: Use SG_TILE_ADDR_RANGE instead of TILE_ADDR_RANGE Gwan-gyeong Mun (1): drm/xe: Remove never used code in xe_vm_create() Jouni Högander (1): drm/xe: Do clean shutdown also when using flr Kriish Sharma (1): drm/xe: fix kernel-doc function name mismatch in xe_pm.c Lucas De Marchi (10): drm/xe/gt_throttle: Tidy up perf reasons reading drm/xe/gt_throttle: Always read and mask drm/xe/gt_throttle: Add throttle_to_gt() drm/xe/gt_throttle: Tidy up attribute definition drm/xe: Improve freq and throttle documentation drm/xe/gt_throttle: Drop individual show functions drm/xe: Inline gt_reset in the worker drm/xe/gt_throttle: Avoid TOCTOU when monitoring reasons drm/xe/vram: Move forcewake down to get_flat_ccs_offset() drm/xe/pcode: Rework error mapping Lukasz Laguna (2): drm/xe/pf: Add helper to retrieve VF's LMEM object drm/xe/migrate: Add function to copy of VRAM data in chunks Matt Roper (3): drm/xe/forcewake: Improve kerneldoc drm/xe/eustall: Store forcewake reference in stream structure drm/xe/oa: Store forcewake reference in stream structure Matthew Brost (13): drm/xe: Enforce correct user fence signaling order using drm/xe: Attach last fence to TLB invalidation job queues drm/xe: Decouple bind queue last fence from TLB invalidations drm/xe: Skip TLB invalidation waits in page fault binds drm/xe: Disallow input fences on zero batch execs and zero binds drm/xe: Remove last fence dependency check from binds and execs drm/xe: Stub out new pagefault layer drm/xe: Implement xe_pagefault_init drm/xe: Implement xe_pagefault_reset drm/xe: Implement xe_pagefault_handler drm/xe: Implement xe_pagefault_queue_work drm/xe: Add xe_guc_pagefault layer drm/xe: Remove unused GT page fault code Michal Wajdeczko (22): drm/xe/pf: Prepare sysfs for SR-IOV admin attributes drm/xe/pf: Take RPM during calls to SR-IOV attr.store() drm/xe/pf: Add _locked variants of the VF EQ config functions drm/xe/pf: Add _locked variants of the VF PT config functions drm/xe/pf: Allow change PF and VFs EQ/PT using sysfs drm/xe/pf: Relax report helper to accept PF in bulk configs drm/xe/pf: Fix signature of internal config helpers drm/xe/pf: Add functions to bulk configure EQ/PT on GT drm/xe/pf: Add functions to bulk provision EQ/PT drm/xe/pf: Allow bulk change all VFs EQ/PT using sysfs drm/xe/pf: Add functions to provision scheduling priority drm/xe/pf: Allow bulk change all VFs priority using sysfs drm/xe/pf: Allow change PF scheduling priority using sysfs drm/xe/pf: Promote xe_pci_sriov_get_vf_pdev drm/xe/pf: Add sysfs device symlinks to enabled VFs drm/xe/pf: Allow to stop the VF using sysfs drm/xe/pf: Add documentation for sriov_admin attributes drm/xe/pf: Use migration-friendly context IDs auto-provisioning drm/xe/pf: Use migration-friendly doorbells auto-provisioning drm/xe/tests: Add KUnit tests for PF fair provisioning drm/xe/pf: Allow to lockdown the PF using custom guard drm/xe/pf: Use migration-friendly GGTT auto-provisioning Michał Winiarski (23): drm/xe/vf: Enable VF resource fixup unconditionally drm/xe/pf: Remove GuC version check for migration support drm/xe: Move migration support to device-level struct drm/xe/pf: Convert control state to bitmap drm/xe/pf: Add save/restore control state stubs and connect to debugfs drm/xe/pf: Add data structures and handlers for migration rings drm/xe/pf: Add helpers for migration data packet allocation / free drm/xe/pf: Add support for encap/decap of bitstream to/from packet drm/xe/pf: Add minimalistic migration descriptor drm/xe/pf: Expose VF migration data size over debugfs drm/xe: Add sa/guc_buf_cache sync interface drm/xe: Allow the caller to pass guc_buf_cache size drm/xe/pf: Increase PF GuC Buffer Cache size and use it for VF migration drm/xe/pf: Remove GuC migration data save/restore from GT debugfs drm/xe/pf: Don't save GuC VF migration data on pause drm/xe/pf: Switch VF migration GuC save/restore to struct migration data drm/xe/pf: Handle GuC migration data as part of PF control drm/xe/pf: Add helpers for VF GGTT migration data handling drm/xe/pf: Handle GGTT migration data as part of PF control drm/xe/pf: Handle MMIO migration data as part of PF control drm/xe/pf: Handle VRAM migration data as part of PF control drm/xe/pf: Add wait helper for VF FLR drm/intel/bmg: Allow device ID usage with single-argument macros Mohammed Thasleem (1): drm/xe/xe_debugfs: Expose G7 package state residency counter through debugfs Nitin Gote (1): drm/xe/xe3lpg: Extend Wa_15016589081 for xe3lpg Piotr Piórkowski (1): drm/xe/pf: Add runtime registers for GFX ver >= 35 Rodrigo Vivi (1): drm/xe: Fix MTL vm_max_level Shuicheng Lin (1): drm/xe: Limit number of jobs per exec queue Sk Anirban (3): drm/xe/cri: Add new performance limit reasons bits drm/xe/guc: Eliminate RPe caching for SLPC parameter handling drm/xe/guc: Eliminate RPa frequency caching Tangudu Tilak Tirumalesh (1): drm/xe/xe3: Extend wa_14023061436 Tapani Pälli (1): drm/xe/xe3: Apply wa_14024997852 Thomas Hellström (1): drm/xe: Fix uninitialized return value from xe_validation_guard() Xin Wang (1): drm/xe: highlight reserved PAT entries in dump output .../ABI/testing/sysfs-driver-intel-xe-sriov | 159 +++ Documentation/gpu/xe/xe_gt_freq.rst | 3 + drivers/gpu/drm/xe/Makefile | 6 +- drivers/gpu/drm/xe/regs/xe_gt_regs.h | 14 +- drivers/gpu/drm/xe/regs/xe_pmt.h | 1 + drivers/gpu/drm/xe/regs/xe_regs.h | 2 + .../gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c | 208 ++++ drivers/gpu/drm/xe/xe_debugfs.c | 1 + drivers/gpu/drm/xe/xe_device.c | 23 +- drivers/gpu/drm/xe/xe_device_types.h | 11 + drivers/gpu/drm/xe/xe_eu_stall.c | 8 +- drivers/gpu/drm/xe/xe_exec.c | 14 +- drivers/gpu/drm/xe/xe_exec_queue.c | 124 ++- drivers/gpu/drm/xe/xe_exec_queue.h | 23 +- drivers/gpu/drm/xe/xe_exec_queue_types.h | 17 + drivers/gpu/drm/xe/xe_force_wake_types.h | 26 +- drivers/gpu/drm/xe/xe_ggtt.c | 104 ++ drivers/gpu/drm/xe/xe_ggtt.h | 3 + drivers/gpu/drm/xe/xe_ggtt_types.h | 2 + drivers/gpu/drm/xe/xe_gt.c | 44 +- drivers/gpu/drm/xe/xe_gt_freq.c | 30 +- drivers/gpu/drm/xe/xe_gt_pagefault.c | 679 ------------ drivers/gpu/drm/xe/xe_gt_pagefault.h | 19 - drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 351 +++++- drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h | 16 + drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c | 650 +++++++++++- drivers/gpu/drm/xe/xe_gt_sriov_pf_control.h | 10 + drivers/gpu/drm/xe/xe_gt_sriov_pf_control_types.h | 34 +- drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 47 - drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.c | 1112 +++++++++++++++----- drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.h | 46 +- .../gpu/drm/xe/xe_gt_sriov_pf_migration_types.h | 34 +- drivers/gpu/drm/xe/xe_gt_sriov_pf_service.c | 21 +- drivers/gpu/drm/xe/xe_gt_sriov_pf_types.h | 5 +- drivers/gpu/drm/xe/xe_gt_throttle.c | 375 +++---- drivers/gpu/drm/xe/xe_gt_types.h | 65 -- drivers/gpu/drm/xe/xe_guard.h | 119 +++ drivers/gpu/drm/xe/xe_guc.c | 13 +- drivers/gpu/drm/xe/xe_guc_buf.c | 57 +- drivers/gpu/drm/xe/xe_guc_buf.h | 2 + drivers/gpu/drm/xe/xe_guc_ct.c | 9 +- drivers/gpu/drm/xe/xe_guc_pagefault.c | 95 ++ drivers/gpu/drm/xe/xe_guc_pagefault.h | 15 + drivers/gpu/drm/xe/xe_guc_pc.c | 100 +- drivers/gpu/drm/xe/xe_guc_pc_types.h | 4 - drivers/gpu/drm/xe/xe_migrate.c | 142 ++- drivers/gpu/drm/xe/xe_migrate.h | 16 + drivers/gpu/drm/xe/xe_oa.c | 54 +- drivers/gpu/drm/xe/xe_oa_types.h | 11 + drivers/gpu/drm/xe/xe_pagefault.c | 445 ++++++++ drivers/gpu/drm/xe/xe_pagefault.h | 19 + drivers/gpu/drm/xe/xe_pagefault_types.h | 136 +++ drivers/gpu/drm/xe/xe_pat.c | 15 +- drivers/gpu/drm/xe/xe_pat.h | 5 + drivers/gpu/drm/xe/xe_pci.c | 2 +- drivers/gpu/drm/xe/xe_pci_sriov.c | 62 +- drivers/gpu/drm/xe/xe_pci_sriov.h | 1 + drivers/gpu/drm/xe/xe_pcode.c | 40 +- drivers/gpu/drm/xe/xe_pcode_api.h | 6 - drivers/gpu/drm/xe/xe_pm.c | 2 +- drivers/gpu/drm/xe/xe_pt.c | 80 +- drivers/gpu/drm/xe/xe_reg_whitelist.c | 7 + drivers/gpu/drm/xe/xe_sa.c | 21 + drivers/gpu/drm/xe/xe_sa.h | 1 + drivers/gpu/drm/xe/xe_sched_job.c | 19 +- drivers/gpu/drm/xe/xe_sched_job.h | 1 - drivers/gpu/drm/xe/xe_sriov_packet.c | 520 +++++++++ drivers/gpu/drm/xe/xe_sriov_packet.h | 30 + drivers/gpu/drm/xe/xe_sriov_packet_types.h | 75 ++ drivers/gpu/drm/xe/xe_sriov_pf.c | 107 ++ drivers/gpu/drm/xe/xe_sriov_pf.h | 4 + drivers/gpu/drm/xe/xe_sriov_pf_control.c | 128 +++ drivers/gpu/drm/xe/xe_sriov_pf_control.h | 5 + drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c | 131 +++ drivers/gpu/drm/xe/xe_sriov_pf_helpers.h | 16 + drivers/gpu/drm/xe/xe_sriov_pf_migration.c | 342 ++++++ drivers/gpu/drm/xe/xe_sriov_pf_migration.h | 29 + drivers/gpu/drm/xe/xe_sriov_pf_migration_types.h | 37 + drivers/gpu/drm/xe/xe_sriov_pf_provision.c | 284 +++++ drivers/gpu/drm/xe/xe_sriov_pf_provision.h | 14 + drivers/gpu/drm/xe/xe_sriov_pf_sysfs.c | 647 ++++++++++++ drivers/gpu/drm/xe/xe_sriov_pf_sysfs.h | 16 + drivers/gpu/drm/xe/xe_sriov_pf_types.h | 21 + drivers/gpu/drm/xe/xe_sriov_vf.c | 8 - drivers/gpu/drm/xe/xe_svm.c | 3 +- drivers/gpu/drm/xe/xe_sync.c | 95 +- drivers/gpu/drm/xe/xe_sync.h | 3 + drivers/gpu/drm/xe/xe_sync_types.h | 3 + drivers/gpu/drm/xe/xe_tlb_inval_job.c | 31 +- drivers/gpu/drm/xe/xe_tlb_inval_job.h | 5 +- drivers/gpu/drm/xe/xe_trace.h | 23 + drivers/gpu/drm/xe/xe_validation.h | 8 +- drivers/gpu/drm/xe/xe_vm.c | 101 +- drivers/gpu/drm/xe/xe_vm_types.h | 6 +- drivers/gpu/drm/xe/xe_vram.c | 26 +- drivers/gpu/drm/xe/xe_wa.c | 7 + include/drm/intel/pciids.h | 2 +- 97 files changed, 6762 insertions(+), 1751 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-sriov create mode 100644 drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c delete mode 100644 drivers/gpu/drm/xe/xe_gt_pagefault.c delete mode 100644 drivers/gpu/drm/xe/xe_gt_pagefault.h create mode 100644 drivers/gpu/drm/xe/xe_guard.h create mode 100644 drivers/gpu/drm/xe/xe_guc_pagefault.c create mode 100644 drivers/gpu/drm/xe/xe_guc_pagefault.h create mode 100644 drivers/gpu/drm/xe/xe_pagefault.c create mode 100644 drivers/gpu/drm/xe/xe_pagefault.h create mode 100644 drivers/gpu/drm/xe/xe_pagefault_types.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_packet.c create mode 100644 drivers/gpu/drm/xe/xe_sriov_packet.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_packet_types.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_migration.c create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_migration.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_migration_types.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_sysfs.c create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_sysfs.h
