Dave, Sima, Here goes our last push toward 7.4. There are lots of small changes, along with one major addition: CPU binds and ULLS on the migration queue.
Matt drm-xe-next-2026-10-01-1: Cross-subsystem Changes: - pagemap: Drop ratelimiting from dev_unhold_work debug trace (Varun) - gpusvm/pagemap: Add support to get_pages devmem callback (Himal) Driver Changes: - nuke PTs only after unlinking contested VMAs (Auld) - Limit sg segment size to PAGE_SIZE on Xen PV (Szymon) - Move locking to xe_sriov_pf_reprovision_default (Wajdeczko) - Add wa_14025941587 to xe2, xe3 and xe3p platforms (Tangudu) - Keep VF LMEM BAR size low if no VFs enabled (Marcin) - sysctrl: Allow per-command mailbox response timeout (Anoop) - Drop old Xe GT ID macros (Roper) - Implement Wa_22016122933 (Tales) - TLB debug 0hang enhancements (Tales) - Revert "drm/xe: Set mask bits for CCS_MODE register" (Roper) - Remove unreachable madvise_funcs NULL check (Shuicheng) - Remove no-op ternary in emit_flush_invalidate (Shuicheng) - CPU binds + ULLS on migration queue (Brost) - i2c: Re-apply use device_create_managed_software_node (Bartosz) - Add a new PTL PCI ID (Atwood) - Add support for Wa_16030224309 (Tangudu) - cri: Expose device UID through sysfs (Badal) - Enable GSC loading and PXP for NVL-S (Alan) - Force non-compressible memory reads to 256B overfetches (Daniel) - Let xe_guc_ct_send_locked() callers reserve G2H credit (Sujaritha) - Implement print vfunc for page fault info logging (Brian) - Do not dma_fence_put zero fences in err_out path (Jonathan) - Add focused VM teardown and page fault tracing (Daniel) - Fix ULLS for CRI, GT resets (Varun) - Add LRU updates on SVM prefetch resident hits (Himal) - Fix xe_mmio_wait32() to honor delay/sleep maximums (Alan) - cri: Add new PCI ID (Balasubramani) - Make driver unbind safer against module unload (Thomas) - Do not emit Wa_16010904313 twice (Tvrtko) - Fix race around q->guc->suspend_pending access (Jagmeet) The following changes since commit 320662381ca243a3364663e917a7447afaf618fa: drm/xe: Poll GT for C6 before D3 (2026-09-18 11:52:56 -0400) are available in the Git repository at: https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2026-10-01-1 for you to fetch changes up to cf4171a20d13918e07ed01a1e01a6b546825c601: drm/xe/guc: Fix race around q->guc->suspend_pending access (2026-10-01 13:46:31 -0700) ---------------------------------------------------------------- Cross-subsystem Changes: - pagemap: Drop ratelimiting from dev_unhold_work debug trace (Varun) - gpusvm/pagemap: Add support to get_pages devmem callback (Himal) Driver Changes: - nuke PTs only after unlinking contested VMAs (Auld) - Limit sg segment size to PAGE_SIZE on Xen PV (Szymon) - Move locking to xe_sriov_pf_reprovision_default (Wajdeczko) - Add wa_14025941587 to xe2, xe3 and xe3p platforms (Tangudu) - Keep VF LMEM BAR size low if no VFs enabled (Marcin) - sysctrl: Allow per-command mailbox response timeout (Anoop) - Drop old Xe GT ID macros (Roper) - Implement Wa_22016122933 (Tales) - TLB debug 0hang enhancements (Tales) - Revert "drm/xe: Set mask bits for CCS_MODE register" (Roper) - Remove unreachable madvise_funcs NULL check (Shuicheng) - Remove no-op ternary in emit_flush_invalidate (Shuicheng) - CPU binds + ULLS on migration queue (Brost) - i2c: Re-apply use device_create_managed_software_node (Bartosz) - Add a new PTL PCI ID (Atwood) - Add support for Wa_16030224309 (Tangudu) - cri: Expose device UID through sysfs (Badal) - Enable GSC loading and PXP for NVL-S (Alan) - Force non-compressible memory reads to 256B overfetches (Daniel) - Let xe_guc_ct_send_locked() callers reserve G2H credit (Sujaritha) - Implement print vfunc for page fault info logging (Brian) - Do not dma_fence_put zero fences in err_out path (Jonathan) - Add focused VM teardown and page fault tracing (Daniel) - Fix ULLS for CRI, GT resets (Varun) - Add LRU updates on SVM prefetch resident hits (Himal) - Fix xe_mmio_wait32() to honor delay/sleep maximums (Alan) - cri: Add new PCI ID (Balasubramani) - Make driver unbind safer against module unload (Thomas) - Do not emit Wa_16010904313 twice (Tvrtko) - Fix race around q->guc->suspend_pending access (Jagmeet) ---------------------------------------------------------------- Alan Previn (3): drm/xe/gsc: Define GSC for NVL-S drm/xe/nvl-s: Enable PXP for NVL-S drm/xe/mmio: Fix xe_mmio_wait32() to honor delay/sleep maximums Anoop Vijay (1): drm/xe/sysctrl: Allow per-command mailbox response timeout Badal Nilawar (1): drm/xe/cri: Expose device UID through sysfs Balasubramani Vivekanandan (1): drm/xe/cri: Add new PCI ID Bartosz Golaszewski (1): drm/xe/i2c: Re-apply use device_create_managed_software_node() Brian Nguyen (1): drm/xe: Implement print vfunc for page fault info logging Daniel Charles (2): drm/xe/xe3p: Force non-compressible memory reads to 256B overfetches drm/xe: Add focused VM teardown and page fault tracing Himal Prasad Ghimiray (4): drm/pagemap: Add helper to access backing devmem allocation drm/gpusvm: Add devmem callback to get_pages drm/xe: Bump prefetch BO LRU via GPUSVM devmem callback drm/xe: Bump prefetch BO LRU for already-valid ranges Jagmeet Randhawa (1): drm/xe/guc: Fix race around q->guc->suspend_pending access Jonathan Cavitt (1): drm/xe/vm: Do not dma_fence_put zero fences in err_out path Marcin Bernatowicz (1): drm/xe/pf: Keep VF LMEM BAR size low if no VFs enabled Matt Atwood (1): drm/xe/ptl: Add a new PTL PCI ID Matt Roper (2): drm/xe: Drop old Xe GT ID macros Revert "drm/xe: Set mask bits for CCS_MODE register" Matthew Auld (1): drm/xe/vm: nuke PTs only after unlinking contested VMAs Matthew Brost (24): drm/xe: reference VM from PT BOs drm/xe: Drop struct xe_migrate_pt_update argument from populate/clear vfuns drm/xe: Add xe_migrate_update_pgtables_cpu_execute helper drm/xe: Decouple exec queue idle check from LRC drm/xe: Add job count to GuC exec queue snapshot drm/xe: Update xe_bo_put_deferred arguments to include writeback flag drm/xe: Update scheduler job layer to support PT jobs drm/xe: Add helpers to access PT ops drm/xe: Add struct xe_pt_job_ops drm/xe: Update GuC submission backend to run PT jobs drm/xe: Store level in struct xe_vm_pgtable_update drm/xe: Don't use migrate exec queue for page fault binds drm/xe: Enable CPU binds for jobs drm/xe: Remove unused arguments from xe_migrate_pt_update_ops drm/xe: Make bind queues operate cross-tile drm/xe: Add CPU bind layer drm/xe: Add device flag to enable PT mirroring across tiles drm/xe: Add ULLS support to LRC drm/xe: Add ULLS migration job support to migration layer drm/xe: Add ULLS migration job support to ring ops drm/xe: Add ULLS migration job support to GuC submission drm/xe: Enter ULLS for migration jobs upon page fault or SVM prefetch drm/xe: add migrate ULLS period configfs attribute drm/xe: Document ULLS for migration jobs Michal Wajdeczko (1): drm/xe/pf: Move locking to xe_sriov_pf_reprovision_default Shuicheng Lin (2): drm/xe/madvise: Remove unreachable madvise_funcs NULL check drm/xe: Remove no-op ternary in emit_flush_invalidate() Sujaritha Sundaresan (1): drm/xe/guc: Let xe_guc_ct_send_locked() callers reserve G2H credit Szymon Acedański (1): drm/xe: Limit sg segment size to PAGE_SIZE on Xen PV Tales A. Mendonça (3): drm/xe: Capture devcoredump on TLB invalidation timeout drm/xe: Log when a timed out TLB invalidation ack finally arrives drm/xe: Implement Wa_22016122933 Tangudu Tilak Tirumalesh (3): drm/xe: harden adjust_idledly() against divide-by-zero and overflow drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms drm/xe/xe3p_lpg: Add support for Wa_16030224309 Thomas Hellström (3): drm/xe: Don't unload the driver until all drm devices are freed drm/xe: Route deferred xe_vma/xe_vm teardown off system_dfl_wq drm/xe: Route execlist exec queue teardown off system_dfl_wq Tvrtko Ursulin (1): drm/xe: Do not emit Wa_16010904313 twice Varun Gupta (4): drm/pagemap: Drop ratelimiting from dev_unhold_work debug trace drm/xe: Park on the ULLS semaphore before publishing the next job's tail drm/xe/guc: Publish the ring tail when replaying a chained ULLS job drm/xe/guc: Rewind the LRC ring head when replaying a ULLS job .../ABI/testing/sysfs-driver-intel-xe-gpu | 10 + Documentation/gpu/xe/xe_migrate.rst | 3 + drivers/gpu/drm/drm_gpusvm.c | 105 ++- drivers/gpu/drm/drm_pagemap.c | 17 +- drivers/gpu/drm/xe/Makefile | 1 + drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 1 + drivers/gpu/drm/xe/regs/xe_gt_regs.h | 3 +- drivers/gpu/drm/xe/regs/xe_regs.h | 2 + drivers/gpu/drm/xe/xe_bo.c | 4 +- drivers/gpu/drm/xe/xe_bo.h | 29 +- drivers/gpu/drm/xe/xe_bo_types.h | 2 - drivers/gpu/drm/xe/xe_configfs.c | 67 ++ drivers/gpu/drm/xe/xe_configfs.h | 2 + drivers/gpu/drm/xe/xe_cpu_bind.c | 296 ++++++++ drivers/gpu/drm/xe/xe_cpu_bind.h | 111 +++ drivers/gpu/drm/xe/xe_devcoredump.c | 46 +- drivers/gpu/drm/xe/xe_devcoredump.h | 15 +- drivers/gpu/drm/xe/xe_device.c | 43 ++ drivers/gpu/drm/xe/xe_device.h | 2 + drivers/gpu/drm/xe/xe_device_sysfs.c | 36 + drivers/gpu/drm/xe/xe_device_types.h | 15 +- drivers/gpu/drm/xe/xe_drm_client.c | 2 +- drivers/gpu/drm/xe/xe_exec_queue.c | 161 ++--- drivers/gpu/drm/xe/xe_exec_queue.h | 16 +- drivers/gpu/drm/xe/xe_exec_queue_types.h | 20 +- drivers/gpu/drm/xe/xe_execlist.c | 6 +- drivers/gpu/drm/xe/xe_gpu_scheduler_types.h | 5 +- drivers/gpu/drm/xe/xe_gt_ccs_mode.c | 6 - drivers/gpu/drm/xe/xe_guc.c | 16 + drivers/gpu/drm/xe/xe_guc.h | 2 + drivers/gpu/drm/xe/xe_guc_ads.c | 11 +- drivers/gpu/drm/xe/xe_guc_ct.c | 23 +- drivers/gpu/drm/xe/xe_guc_ct.h | 2 +- drivers/gpu/drm/xe/xe_guc_engine_activity.c | 6 +- drivers/gpu/drm/xe/xe_guc_exec_queue_types.h | 5 +- drivers/gpu/drm/xe/xe_guc_hwconfig.c | 2 +- drivers/gpu/drm/xe/xe_guc_log.c | 7 +- drivers/gpu/drm/xe/xe_guc_pagefault.c | 35 +- drivers/gpu/drm/xe/xe_guc_pc.c | 3 +- drivers/gpu/drm/xe/xe_guc_submit.c | 148 +++- drivers/gpu/drm/xe/xe_guc_submit_types.h | 2 + drivers/gpu/drm/xe/xe_hw_engine.c | 96 ++- drivers/gpu/drm/xe/xe_i2c.c | 22 +- drivers/gpu/drm/xe/xe_i2c.h | 1 - drivers/gpu/drm/xe/xe_lrc.c | 111 ++- drivers/gpu/drm/xe/xe_lrc.h | 4 + drivers/gpu/drm/xe/xe_lrc_types.h | 4 + drivers/gpu/drm/xe/xe_migrate.c | 771 +++++++++----------- drivers/gpu/drm/xe/xe_migrate.h | 95 +-- drivers/gpu/drm/xe/xe_mmio.c | 5 +- drivers/gpu/drm/xe/xe_module.c | 24 +- drivers/gpu/drm/xe/xe_pagefault.c | 53 +- drivers/gpu/drm/xe/xe_pagefault_types.h | 10 + drivers/gpu/drm/xe/xe_pci.c | 5 + drivers/gpu/drm/xe/xe_pci_sriov.c | 3 + drivers/gpu/drm/xe/xe_pci_types.h | 4 +- drivers/gpu/drm/xe/xe_pt.c | 779 ++++++++++++--------- drivers/gpu/drm/xe/xe_pt.h | 12 +- drivers/gpu/drm/xe/xe_pt_types.h | 49 +- drivers/gpu/drm/xe/xe_ring_ops.c | 86 ++- drivers/gpu/drm/xe/xe_ring_ops_types.h | 24 + drivers/gpu/drm/xe/xe_sched_job.c | 101 ++- drivers/gpu/drm/xe/xe_sched_job.h | 56 ++ drivers/gpu/drm/xe/xe_sched_job_types.h | 49 +- drivers/gpu/drm/xe/xe_sriov_pf_provision.c | 4 +- drivers/gpu/drm/xe/xe_svm.c | 68 ++ drivers/gpu/drm/xe/xe_svm.h | 18 + drivers/gpu/drm/xe/xe_sync.c | 20 +- drivers/gpu/drm/xe/xe_sysctrl_mailbox.c | 7 +- drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 3 + drivers/gpu/drm/xe/xe_tlb_inval.c | 54 ++ drivers/gpu/drm/xe/xe_tlb_inval_job.c | 28 +- drivers/gpu/drm/xe/xe_tlb_inval_job.h | 4 +- drivers/gpu/drm/xe/xe_tlb_inval_types.h | 17 + drivers/gpu/drm/xe/xe_trace.h | 2 +- drivers/gpu/drm/xe/xe_trace_bo.h | 58 +- drivers/gpu/drm/xe/xe_tuning.c | 4 + drivers/gpu/drm/xe/xe_uc_fw.c | 1 + drivers/gpu/drm/xe/xe_vm.c | 293 ++++---- drivers/gpu/drm/xe/xe_vm.h | 3 + drivers/gpu/drm/xe/xe_vm_madvise.c | 6 - drivers/gpu/drm/xe/xe_vm_types.h | 12 +- drivers/gpu/drm/xe/xe_wa_oob.rules | 4 + include/drm/drm_gpusvm.h | 6 + include/drm/drm_pagemap.h | 7 + include/drm/intel/pciids.h | 4 +- 86 files changed, 2865 insertions(+), 1410 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-gpu create mode 100644 drivers/gpu/drm/xe/xe_cpu_bind.c create mode 100644 drivers/gpu/drm/xe/xe_cpu_bind.h
