[PULL] drm-xe-next

Thomas Hellstrom
2025-12-30T09:58:57Z

Hi Dave, Simona

This week's drm-xe-next PR (Rodrigo is out this week).

Two big series, the SRIOV scheduler groups, and
multi-device SVM. The latter may conflict somewhat with
fixes, but conflict resolutions are in drm-rerere and
should be resolved to the -next code anyway.

The multi-device SVM also touches UAPI.

Thanks,
Thomas

drm-xe-next-2025-12-30:
Core Changes:
- Dynamic pagemaps and multi-device SVM (Thomas)

Driver Changes:
- Introduce SRIOV scheduler Groups (Daniele)
- Configure migration queue as low latency (Francois)
- Don't use absolute path in generated header comment (Calvin Owens)
- Add SoC remapper support for system controller (Umesh)
- Insert compiler barriers in GuC code (Jonathan)
- Rebar updates (Lucas)
The following changes since commit 844758bd99a86e6a07247784727fb337c4b979ca:

drm/xe: Print GuC queue submission state on engine reset (2025-12-19 11:45:29 -0800)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2025-12-30

for you to fetch changes up to 0b075f82935e82fc9fff90d06d2a161caaebd9c3:

drm/xe: Improve rebar log messages (2025-12-24 07:59:35 -0800)

----------------------------------------------------------------
Core Changes:
- Dynamic pagemaps and multi-device SVM (Thomas)

Driver Changes:
- Introduce SRIOV scheduler Groups (Daniele)
- Configure migration queue as low latency (Francois)
- Don't use absolute path in generated header comment (Calvin Owens)
- Add SoC remapper support for system controller (Umesh)
- Insert compiler barriers in GuC code (Jonathan)
- Rebar updates (Lucas)

----------------------------------------------------------------
Calvin Owens (1):
drm/xe: Don't use absolute path in generated header comment

Daniele Ceraolo Spurio (12):
drm/xe/gt: Add engine masks for each class
drm/gt/guc: extract scheduler-related defines from guc_fwif.h
drm/xe/pf: Initialize scheduler groups
drm/xe/pf: Add support for enabling scheduler groups
drm/xe/pf: Scheduler groups are incompatible with multi-lrc
drm/xe/vf: Check if scheduler groups are enabled
drm/xe/pf: Add debugfs to enable scheduler groups
drm/xe/pf: Add debugfs with scheduler groups information
drm/xe/pf: Prep for multiple exec quantums and preemption timeouts
drm/xe/pf: Add functions to set exec quantums for each group
drm/xe/pf: Add functions to set preempt timeouts for each group
drm/xe/pf: Add debugfs to set EQ and PT for scheduler groups

Francois Dugast (1):
drm/xe/migrate: Configure migration queue as low latency

Jonathan Cavitt (2):
drm/xe/guc: READ/WRITE_ONCE g2h_fence->done
drm/xe/guc: READ/WRITE_ONCE ct->state

Lucas De Marchi (2):
drm/xe: Move rebar to its own file
drm/xe: Improve rebar log messages

Thomas Hellström (24):
drm/xe/svm: Fix a debug printout
drm/pagemap: Remove some dead code
drm/pagemap, drm/xe: Ensure that the devmem allocation is idle before use
drm/pagemap, drm/xe: Add refcounting to struct drm_pagemap
drm/pagemap: Add a refcounted drm_pagemap backpointer to struct drm_pagemap_zdd
drm/pagemap, drm/xe: Manage drm_pagemap provider lifetimes
drm/pagemap: Add a drm_pagemap cache and shrinker
drm/xe: Use the drm_pagemap cache and shrinker
drm/pagemap: Remove the drm_pagemap_create() interface
drm/pagemap_util: Add a utility to assign an owner to a set of interconnected gpus
drm/xe: Use the drm_pagemap_util helper to get a svm pagemap owner
drm/xe: Pass a drm_pagemap pointer around with the memory advise attributes
drm/xe: Use the vma attibute drm_pagemap to select where to migrate
drm/xe: Simplify madvise_preferred_mem_loc()
drm/xe/uapi: Extend the madvise functionality to support foreign pagemap placement for svm
drm/xe: Support pcie p2p dma as a fast interconnect
drm/xe/vm: Add a couple of VM debug printouts
drm/xe/svm: Document how xe keeps drm_pagemap references
drm/pagemap, drm/xe: Clean up the use of the device-private page owner
drm/gpusvm: Introduce a function to scan the current migration state
drm/xe: Use drm_gpusvm_scan_mm()
drm/pagemap, drm/xe: Support destination migration over interconnect
drm/pagemap: Support source migration over interconnect
drm/xe/svm: Serialize migration to device if racing

Umesh Nerlige Ramappa (3):
drm/xe/soc_remapper: Initialize SoC remapper during Xe probe
drm/xe/soc_remapper: Use SoC remapper helper from VSEC code
drm/xe/soc_remapper: Add system controller config for SoC remapper

drivers/gpu/drm/Makefile | 3 +-
drivers/gpu/drm/drm_gpusvm.c | 124 ++++
drivers/gpu/drm/drm_pagemap.c | 563 +++++++++++++++---
drivers/gpu/drm/drm_pagemap_util.c | 568 ++++++++++++++++++
drivers/gpu/drm/xe/Makefile | 2 +
drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 64 ++
drivers/gpu/drm/xe/abi/guc_scheduler_abi.h | 57 ++
drivers/gpu/drm/xe/regs/xe_pmt.h | 3 -
drivers/gpu/drm/xe/regs/xe_soc_remapper_regs.h | 14 +
drivers/gpu/drm/xe/xe_device.c | 25 +
drivers/gpu/drm/xe/xe_device.h | 2 +
drivers/gpu/drm/xe/xe_device_types.h | 21 +
drivers/gpu/drm/xe/xe_exec_queue.c | 19 +
drivers/gpu/drm/xe/xe_gen_wa_oob.c | 3 +-
drivers/gpu/drm/xe/xe_gt.h | 12 +-
drivers/gpu/drm/xe/xe_gt_ccs_mode.c | 8 +-
drivers/gpu/drm/xe/xe_gt_ccs_mode.h | 2 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 20 +
drivers/gpu/drm/xe/xe_gt_sriov_pf.h | 8 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 279 ++++++++-
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h | 10 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h | 5 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 295 +++++++++
drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.c | 329 ++++++++++
drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.h | 10 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_policy_types.h | 39 ++
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 67 +++
drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 1 +
drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 2 +
drivers/gpu/drm/xe/xe_guc.c | 2 +-
drivers/gpu/drm/xe/xe_guc_capture.h | 2 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 21 +-
drivers/gpu/drm/xe/xe_guc_ct.h | 6 +-
drivers/gpu/drm/xe/xe_guc_fwif.h | 54 +-
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 9 +
drivers/gpu/drm/xe/xe_guc_submit.c | 40 +-
drivers/gpu/drm/xe/xe_guc_submit.h | 2 +
drivers/gpu/drm/xe/xe_migrate.c | 32 +-
drivers/gpu/drm/xe/xe_migrate.h | 6 +-
drivers/gpu/drm/xe/xe_pci.c | 8 +-
drivers/gpu/drm/xe/xe_pci_rebar.c | 106 ++++
drivers/gpu/drm/xe/xe_pci_rebar.h | 13 +
drivers/gpu/drm/xe/xe_pci_types.h | 2 +
drivers/gpu/drm/xe/xe_soc_remapper.c | 52 ++
drivers/gpu/drm/xe/xe_soc_remapper.h | 13 +
drivers/gpu/drm/xe/xe_svm.c | 727 +++++++++++++++++++----
drivers/gpu/drm/xe/xe_svm.h | 85 ++-
drivers/gpu/drm/xe/xe_tile.c | 34 +-
drivers/gpu/drm/xe/xe_tile.h | 21 +
drivers/gpu/drm/xe/xe_userptr.c | 2 +-
drivers/gpu/drm/xe/xe_vm.c | 65 +-
drivers/gpu/drm/xe/xe_vm.h | 1 +
drivers/gpu/drm/xe/xe_vm_madvise.c | 106 +++-
drivers/gpu/drm/xe/xe_vm_types.h | 21 +-
drivers/gpu/drm/xe/xe_vram.c | 91 ---
drivers/gpu/drm/xe/xe_vram.h | 1 -
drivers/gpu/drm/xe/xe_vram_types.h | 15 +-
drivers/gpu/drm/xe/xe_vsec.c | 6 +-
include/drm/drm_gpusvm.h | 29 +
include/drm/drm_pagemap.h | 128 +++-
include/drm/drm_pagemap_util.h | 92 +++
include/uapi/drm/xe_drm.h | 18 +-
62 files changed, 3880 insertions(+), 485 deletions(-)
create mode 100644 drivers/gpu/drm/drm_pagemap_util.c
create mode 100644 drivers/gpu/drm/xe/abi/guc_scheduler_abi.h
create mode 100644 drivers/gpu/drm/xe/regs/xe_soc_remapper_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_pci_rebar.c
create mode 100644 drivers/gpu/drm/xe/xe_pci_rebar.h
create mode 100644 drivers/gpu/drm/xe/xe_soc_remapper.c
create mode 100644 drivers/gpu/drm/xe/xe_soc_remapper.h
create mode 100644 include/drm/drm_pagemap_util.h