[PULL] drm-xe-next

Rodrigo Vivi
2024-12-11T23:27:59Z

Hi Dave and Sima,

Here goes our first Xe PR towards 6.14.

It's important to highlight that in couple backmerges we had to
manually solve some silent conflicts:

1. Namespace conflict issue caused by
commit cdd30ebb1b9f ("module: Convert symbol namespace to string literal")
and commit 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices"):

- MODULE_IMPORT_NS(INTEL_VSEC);
+ MODULE_IMPORT_NS("INTEL_VSEC");

2. Duplication of a flush work chunk. In this case here the solution
was taken as an extra patch on top of the merge:
commit be15f0bc4a95 ("drm/xe: Fix drm-next merge")

I hope this is okay and that those are transparent to you when merging.
Otherwise please let me know if we need to change some of the history here.

Thanks,
Rodrigo.

drm-xe-next-2024-12-11:
UAPI Changes:
- Make OA buffer size configurable (Sai)

Display Changes (including i915):
- Fix ttm_bo_access() usage (Auld)
- Power request asserting/deasserting for Xe3lpd (Mika)
- One Type-C conversion towards struct intel_display (Mika)

Driver Changes:
- GuC capture related fixes (Everest, Zhanjun)
- Move old workaround to OOB infra (Lucas)
- Compute mode change refactoring (Bala)
- Add ufence and g2h flushes for LNL Hybrid timeouts (Nirmoy)
- Avoid unnecessary OOM kills (Thomas)
- Restore system memory GGTT mappings (Brost)
- Fix build error for XE_IOCTL_DBG macro (Gyeyoung)
- Documentation updates and fixes (Lucas, Randy)
- A few exec IOCTL fixes (Brost)
- Fix potential GGTT allocation leak (Michal)
- Fix races on fdinfo (Lucas)
- SRIOV VF: Post-migration recovery worker basis (Tomasz)
- GuC Communication fixes and improvements (Michal, John, Tomasz, Auld, Jonathan)
- SRIOV PF: Add support for VF scheduling priority
- Trace improvements (Lucas, Auld, Oak)
- Hibernation on igpu fixes and improvements (Auld)
- GT oriented logs/asserts improvements (Michal)
- Take job list lock in xe_sched_first_pending_job (Nirmoy)
- GSC: Improve SW proxy error checking and logging (Daniele)
- GuC crash notifications & drop default log verbosity (John)
- Fix races on fdinfo (Lucas)
- Fix runtime_pm handling in OA (Ashutosh)
- Allow fault injection in vm create and vm bind IOCTLs (Francois)
- TLB invalidation fixes (Nirmoy, Daniele)
- Devcoredump Improvements, doc and fixes (Brost, Lucas, Zhanjun, John)
- Wake up waiters after setting ufence->signalled (Nirmoy)
- Mark preempt fence workqueue as reclaim (Brost)
- Trivial header/flags cleanups (Lucas)
- VRAM drop 2G block restriction (Auld)
- Drop useless d3cold allowed message (Brost)
- SRIOV PF: Drop 2GiB limit of fair LMEM allocation (Michal)
- Add another PTL PCI ID (Atwood)
- Allow bo mapping on multiple ggtts (Niranjana)
- Add support for GuC-to-GuC communication (John)
- Update xe2_graphics name string (Roper)
- VRAM: fix lpfn check (Auld)
- Ad Xe3 workaround (Apoorva)
- Migrate fixes (Auld)
- Fix non-contiguous VRAM BO access (Brost)
- Log throttle reasons (Raag)
- Enable PMT support for BMG (Michael)
- IRQ related fixes and improvements (Ilia)
- Avoid evicting object of the same vm in none fault mode (Oak)
- Fix in tests (Nirmoy)
- Fix ERR_PTR handling (Mirsad)
- Some reg_sr/whitelist fixes and refactors (Lucas)
The following changes since commit fac04efc5c793dccbd07e2d59af9f90b7fc0dca4:

Linux 6.13-rc2 (2024-12-08 14:03:39 -0800)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-12-11

for you to fetch changes up to 4d79a1266d4cc3c967bc8823502466cad1ac8514:

drm/xe: Make irq enabled flag atomic (2024-12-11 13:20:53 -0500)

----------------------------------------------------------------
UAPI Changes:
- Make OA buffer size configurable (Sai)

Display Changes (including i915):
- Fix ttm_bo_access() usage (Auld)
- Power request asserting/deasserting for Xe3lpd (Mika)
- One Type-C conversion towards struct intel_display (Mika)

Driver Changes:
- GuC capture related fixes (Everest, Zhanjun)
- Move old workaround to OOB infra (Lucas)
- Compute mode change refactoring (Bala)
- Add ufence and g2h flushes for LNL Hybrid timeouts (Nirmoy)
- Avoid unnecessary OOM kills (Thomas)
- Restore system memory GGTT mappings (Brost)
- Fix build error for XE_IOCTL_DBG macro (Gyeyoung)
- Documentation updates and fixes (Lucas, Randy)
- A few exec IOCTL fixes (Brost)
- Fix potential GGTT allocation leak (Michal)
- Fix races on fdinfo (Lucas)
- SRIOV VF: Post-migration recovery worker basis (Tomasz)
- GuC Communication fixes and improvements (Michal, John, Tomasz, Auld, Jonathan)
- SRIOV PF: Add support for VF scheduling priority
- Trace improvements (Lucas, Auld, Oak)
- Hibernation on igpu fixes and improvements (Auld)
- GT oriented logs/asserts improvements (Michal)
- Take job list lock in xe_sched_first_pending_job (Nirmoy)
- GSC: Improve SW proxy error checking and logging (Daniele)
- GuC crash notifications & drop default log verbosity (John)
- Fix races on fdinfo (Lucas)
- Fix runtime_pm handling in OA (Ashutosh)
- Allow fault injection in vm create and vm bind IOCTLs (Francois)
- TLB invalidation fixes (Nirmoy, Daniele)
- Devcoredump Improvements, doc and fixes (Brost, Lucas, Zhanjun, John)
- Wake up waiters after setting ufence->signalled (Nirmoy)
- Mark preempt fence workqueue as reclaim (Brost)
- Trivial header/flags cleanups (Lucas)
- VRAM drop 2G block restriction (Auld)
- Drop useless d3cold allowed message (Brost)
- SRIOV PF: Drop 2GiB limit of fair LMEM allocation (Michal)
- Add another PTL PCI ID (Atwood)
- Allow bo mapping on multiple ggtts (Niranjana)
- Add support for GuC-to-GuC communication (John)
- Update xe2_graphics name string (Roper)
- VRAM: fix lpfn check (Auld)
- Ad Xe3 workaround (Apoorva)
- Migrate fixes (Auld)
- Fix non-contiguous VRAM BO access (Brost)
- Log throttle reasons (Raag)
- Enable PMT support for BMG (Michael)
- IRQ related fixes and improvements (Ilia)
- Avoid evicting object of the same vm in none fault mode (Oak)
- Fix in tests (Nirmoy)
- Fix ERR_PTR handling (Mirsad)
- Some reg_sr/whitelist fixes and refactors (Lucas)

----------------------------------------------------------------
Apoorva Singh (1):
drm/xe/xe3lpg: Add Wa_16024792527

Ashutosh Dixit (1):
drm/xe/oa: Fix "Missing outer runtime PM protection" warning

Balasubramani Vivekanandan (2):
drm/xe: Set mask bits for CCS_MODE register
drm/xe: Use the filelist from drm for ccs_mode change

Daniele Ceraolo Spurio (2):
drm/xe/gsc: Improve SW proxy error checking and logging
drm/xe: Call invalidation_fence_fini for PT inval fences in error state

Everest K.C. (1):
drm/xe/guc: Fix dereference before NULL check

Francois Dugast (1):
drm/xe: Allow fault injection in vm create and vm bind IOCTLs

Gyeyoung Baek (1):
drm/xe: Fix build error for XE_IOCTL_DBG macro

Ilia Levi (2):
drm/xe: Use managed BO in memirq
drm/xe: Make irq enabled flag atomic

John Harrison (7):
drm/xe/guc: Reduce default GuC log verbosity
drm/xe/guc: Support crash dump notification from GuC
drm/xe/guc: Add support for G2G communications
drm/xe: Add a reason string to the devcoredump
drm/xe: Move the coredump registration to the worker thread
drm/xe: Add mutex locking to devcoredump
drm/xe/guc: Fix for dead CT dump not re-arming

Jonathan Cavitt (1):
drm/xe/xe_guc_ads: Add nonpriv registers to write list

Lucas De Marchi (19):
drm/xe: Move Wa 1607983814 to oob
drm/xe: Fix drm-next merge
drm/xe: Improve devcoredump documentation
drm/xe: Wire up devcoredump in documentation
drm/xe: Fix case for asserts in documentation
drm/xe: Add trace to lrc timestamp update
drm/xe: Stop accumulating LRC timestamp on job_free
drm/xe: Reword exec_queue and vm lock doc
drm/xe: Add gt_id to xe_sched_job traces
drm/xe: Wait on killed exec queues
drm/xe: Sample gpu timestamp closer to exec queues
drm/xe: Include xe_oa_types.h
drm/xe: Drop HAS_HECI_*
drm/xe: Split xe_gt_stat.h
drm/xe: Sort again the info flags
drm/xe/reg_sr: Remove register pool
drm/xe/reg_sr: Convert whitelist to gt logging
drm/xe/reg_sr: Stop setting all whitelist slots
drm/xe: Apply whitelist to engine save-restore

Matt Atwood (1):
drm/xe/ptl: Add another PTL PCI ID

Matt Roper (1):
drm/xe: Update xe2_graphics name string

Matthew Auld (10):
drm/xe: improve hibernation on igpu
drm/xe: handle flat ccs during hibernation on igpu
drm/xe/vram: drop 2G block restriction
drm/xe/vram: fix lpfn check
drm/xe/trace: improve xe_sched_msg trace
drm/xe/guc_submit: fix race around pending_disable
drm/xe/guc_submit: fix race around suspend_pending
drm/xe/migrate: fix pat index usage
drm/xe/migrate: use XE_BO_FLAG_PAGETABLE
drm/xe/display: fix ttm_bo_access() usage

Matthew Brost (21):
drm/xe: Restore system memory GGTT mappings
drm/xe: Fix possible exec queue leak in exec IOCTL
drm/xe: Drop VM dma-resv lock on xe_sync_in_fence_get failure in exec IOCTL
drm/xe: Ensure all locks released in exec IOCTL
drm/xe: Add xe_ring_lrc_is_idle() helper
drm/xe: Add ring address to LRC snapshot
drm/xe: Add ring start to LRC snapshot
drm/xe: Add exec queue param to devcoredump
drm/xe: Improve schedule disable response failure
drm/xe: Change xe_engine_snapshot_capture_for_job to be for queue
drm/xe: Wire devcoredump to LR TDR
drm/xe: Mark preempt fence workqueue as reclaim
drm/xe: Drop useless d3cold allowed message
drm/xe: Add xe_bo_vm_access
drm/ttm: Add ttm_bo_access
drm/xe: Add xe_ttm_access_memory
drm/xe: Take PM ref in delayed snapshot capture worker
drm/xe/display: Update intel_bo_read_from_page to use ttm_bo_access
drm/xe: Use ttm_bo_access in xe_vm_snapshot_capture_delayed
drm/xe: Set XE_BO_FLAG_PINNED in migrate selftest BOs
drm/xe: Only allow contiguous BOs to use xe_bo_vmap

Michael J. Ruhl (2):
drm/xe/vsec: Support BMG devices
drm/xe/vsec: Address static checker issue

Michal Wajdeczko (14):
drm/xe/pf: Fix potential GGTT allocation leak
drm/xe/guc: Log content of the failed G2H message
drm/xe/guc: Drop redundant logs about invalid G2H length
drm/xe/guc: Don't read data from G2H prior to length check
drm/xe/guc: Don't treat GuC generic CAT error as protocol error
drm/xe/guc: Add VF_CFG_SCHED_PRIORITY_KEY KLV definition
drm/xe/guc: Add VF_CFG_SCHED_PRIORITY to KLV helper
drm/xe/pf: Add functions to configure VF scheduling priority
drm/xe/pf: Allow to control scheduling priority using debugfs
drm/xe/pf: Adjust scheduling priority based on policy change
drm/xe/guc: Prefer GT oriented asserts in submit code
drm/xe/guc: Prefer GT oriented logs in submit code
drm/xe/pf: Drop 2GiB limit of fair LMEM allocation
drm/xe: Introduce xe_gt_dbg_printer()

Mika Kahola (2):
drm/i915/xe3lpd: Power request asserting/deasserting
drm/i915/display: Use struct intel_display instead of struct drm_i915_private

Mirsad Todorovac (1):
drm/xe: fix the ERR_PTR() returned on failure to allocate tiny pt

Niranjana Vishwanathapura (1):
drm/xe: Allow bo mapping on multiple ggtts

Nirmoy Das (7):
drm/xe: Move LNL scheduling WA to xe_device.h
drm/xe/ufence: Flush xe ordered_wq in case of ufence timeout
drm/xe/guc/tlb: Flush g2h worker in case of tlb timeout
drm/xe: Take job list lock in xe_sched_first_pending_job
drm/xe: Ignore GGTT TLB inval errors during GT reset
drm/xe/ufence: Wake up waiters after setting ufence->signalled
drm/xe/tests: Wait for clear fence operation to complete

Oak Zeng (2):
drm/xe: Trace xe_bo_validate
drm/xe: Avoid evicting object of the same vm in none fault mode

Raag Jadav (1):
drm/xe/throttle: Log throttle reasons

Randy Dunlap (1):
drm/xe/vm_doc: fix more doc typos

Rodrigo Vivi (2):
Merge drm/drm-next into drm-xe-next
Merge drm/drm-next into drm-xe-next

Sai Teja Pottumuttu (1):
drm/xe/oa/uapi: Make OA buffer size configurable

Thomas Hellström (3):
drm/xe: Avoid the OOM killer on buffer object memory allocation
drm/xe: Don't unnecessarily invoke the OOM killer on multiple binds
Merge drm/drm-next into drm-xe-next

Tomasz Lis (6):
drm/xe/vf: React to MIGRATED interrupt
drm/xe/vf: Document SRIOV VF restore flow
drm/xe/vf: Send RESFIX_DONE message at end of VF restore
drm/xe/vf: Start post-migration fixups with provisioning query
drm/xe/vf: Defer fixups if migrated twice fast
drm/xe/guc: Do not assert CTB state while sending MMIO

Zhanjun Dong (2):
drm/xe/guc: Remove duplicate source field
drm/xe/guc: Fix missing init value and add register order check

Documentation/gpu/xe/index.rst | 1 +
Documentation/gpu/xe/xe_devcoredump.rst | 14 +
drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h | 7 +
drivers/gpu/drm/i915/display/intel_tc.c | 39 ++-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 40 ++-
drivers/gpu/drm/xe/Makefile | 5 +-
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 20 ++
drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h | 38 +++
drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 14 +
drivers/gpu/drm/xe/display/ext/i915_irq.c | 13 +-
drivers/gpu/drm/xe/display/intel_bo.c | 25 +-
drivers/gpu/drm/xe/display/xe_fb_pin.c | 12 +-
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 2 +
drivers/gpu/drm/xe/regs/xe_oa_regs.h | 9 +-
drivers/gpu/drm/xe/regs/xe_pmt.h | 19 ++
drivers/gpu/drm/xe/tests/xe_bo.c | 7 +
drivers/gpu/drm/xe/tests/xe_migrate.c | 17 +-
drivers/gpu/drm/xe/xe_assert.h | 8 +-
drivers/gpu/drm/xe/xe_bo.c | 182 ++++++++++--
drivers/gpu/drm/xe/xe_bo.h | 33 ++-
drivers/gpu/drm/xe/xe_bo_evict.c | 14 +-
drivers/gpu/drm/xe/xe_bo_types.h | 5 +-
drivers/gpu/drm/xe/xe_devcoredump.c | 121 +++++---
drivers/gpu/drm/xe/xe_devcoredump.h | 7 +-
drivers/gpu/drm/xe/xe_devcoredump_types.h | 10 +-
drivers/gpu/drm/xe/xe_device.c | 8 +
drivers/gpu/drm/xe/xe_device_types.h | 57 ++--
drivers/gpu/drm/xe/xe_drm_client.c | 80 ++++--
drivers/gpu/drm/xe/xe_exec_queue.c | 7 +
drivers/gpu/drm/xe/xe_ggtt.c | 35 +--
drivers/gpu/drm/xe/xe_gpu_scheduler.h | 10 +-
drivers/gpu/drm/xe/xe_gsc_proxy.c | 47 +++-
drivers/gpu/drm/xe/xe_gt.c | 4 +-
drivers/gpu/drm/xe/xe_gt_printk.h | 31 +++
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 78 +++++-
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h | 3 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h | 2 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 5 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_helpers.h | 2 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.c | 27 +-
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 63 +++++
drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
drivers/gpu/drm/xe/xe_gt_stats.h | 8 +-
drivers/gpu/drm/xe/xe_gt_stats_types.h | 15 +
drivers/gpu/drm/xe/xe_gt_throttle.c | 2 +
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 21 +-
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h | 1 +
drivers/gpu/drm/xe/xe_gt_types.h | 4 +-
drivers/gpu/drm/xe/xe_guc.c | 320 +++++++++++++++++++++-
drivers/gpu/drm/xe/xe_guc_ads.c | 11 +-
drivers/gpu/drm/xe/xe_guc_capture.c | 33 +--
drivers/gpu/drm/xe/xe_guc_capture.h | 6 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 32 ++-
drivers/gpu/drm/xe/xe_guc_fwif.h | 1 +
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 2 +
drivers/gpu/drm/xe/xe_guc_submit.c | 151 +++++-----
drivers/gpu/drm/xe/xe_guc_types.h | 10 +
drivers/gpu/drm/xe/xe_heci_gsc.c | 8 +-
drivers/gpu/drm/xe/xe_hw_engine.c | 11 +-
drivers/gpu/drm/xe/xe_hw_engine.h | 4 +-
drivers/gpu/drm/xe/xe_hw_engine_types.h | 2 -
drivers/gpu/drm/xe/xe_irq.c | 37 +--
drivers/gpu/drm/xe/xe_lrc.c | 29 ++
drivers/gpu/drm/xe/xe_lrc.h | 4 +
drivers/gpu/drm/xe/xe_macros.h | 12 +-
drivers/gpu/drm/xe/xe_memirq.c | 26 +-
drivers/gpu/drm/xe/xe_module.c | 2 +-
drivers/gpu/drm/xe/xe_oa.c | 55 +++-
drivers/gpu/drm/xe/xe_oa_types.h | 2 +-
drivers/gpu/drm/xe/xe_pm.c | 3 -
drivers/gpu/drm/xe/xe_pt.c | 6 +-
drivers/gpu/drm/xe/xe_query.c | 4 +-
drivers/gpu/drm/xe/xe_reg_sr.c | 84 +-----
drivers/gpu/drm/xe/xe_reg_sr_types.h | 6 -
drivers/gpu/drm/xe/xe_reg_whitelist.c | 37 +++
drivers/gpu/drm/xe/xe_sriov.c | 4 +
drivers/gpu/drm/xe/xe_sriov_pf_helpers.h | 2 +-
drivers/gpu/drm/xe/xe_sriov_types.h | 17 ++
drivers/gpu/drm/xe/xe_sriov_vf.c | 263 ++++++++++++++++++
drivers/gpu/drm/xe/xe_sriov_vf.h | 14 +
drivers/gpu/drm/xe/xe_trace.h | 11 +-
drivers/gpu/drm/xe/xe_trace_bo.h | 5 +
drivers/gpu/drm/xe/xe_trace_lrc.c | 9 +
drivers/gpu/drm/xe/xe_trace_lrc.h | 52 ++++
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 53 +---
drivers/gpu/drm/xe/xe_vm.c | 32 +--
drivers/gpu/drm/xe/xe_vm_doc.h | 22 +-
drivers/gpu/drm/xe/xe_vsec.c | 233 ++++++++++++++++
drivers/gpu/drm/xe/xe_vsec.h | 11 +
drivers/gpu/drm/xe/xe_wa.c | 6 +
drivers/gpu/drm/xe/xe_wa_oob.rules | 1 +
include/drm/intel/xe_pciids.h | 235 ++++++++++++++++
include/drm/ttm/ttm_bo.h | 2 +
include/uapi/drm/xe_drm.h | 9 +
94 files changed, 2463 insertions(+), 590 deletions(-)
create mode 100644 Documentation/gpu/xe/xe_devcoredump.rst
create mode 100644 drivers/gpu/drm/xe/regs/xe_pmt.h
create mode 100644 drivers/gpu/drm/xe/xe_gt_stats_types.h
create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf.c
create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf.h
create mode 100644 drivers/gpu/drm/xe/xe_trace_lrc.c
create mode 100644 drivers/gpu/drm/xe/xe_trace_lrc.h
create mode 100644 drivers/gpu/drm/xe/xe_vsec.c
create mode 100644 drivers/gpu/drm/xe/xe_vsec.h
create mode 100644 include/drm/intel/xe_pciids.h