[PULL] drm-xe-next

Rodrigo Vivi
2024-06-26T22:32:38Z

Hi Dave and Sima,

Here goes our likely last pull-request towards 6.11.
If some last minute thing shows up a small one might come
next Tuesday.

Thanks,
Rodrigo.

drm-xe-next-2024-06-26:

UAPI Changes:
- New uapi adding OA functionality to Xe (Ashutosh)

Cross-subsystem Changes:
- devcoredump: Add dev_coredumpm_timeout (Jose)

Driver Changes:
- More SRIOV preparation, including GuC communication improvements (Michal)
- Kconfig update: do not select ACPI_BUTTON (Jani)
- Rework GPU page fault handling (Brost)
- Forcewake clean-up and fixes (Himal, Michal)
- Drop EXEC_QUEUE_FLAG_BANNED (Brost)
- Xe/Xe2 Workarounds fixes and additions (Tejas, Akshata, Sai, Vinay)
- Xe devcoredump changes (Jose)
- Tracing cleanup and add mmio tracing (RK)
- Add BMG PCI IDs (Roper)
- Scheduler fixes and improvements (Brost)
- Some overal driver clean-up around headers and print macros (Michal)
- Rename xe_exec_queue::compute to xe_exec_queue::lr (Francois)
- Improve RTP rules to allow easier 'OR' conditions in WA declaration (Lucas)
- Use ttm_uncached for BO with NEEDS_UC flag (Michal)
- Other OA related work and fixes (Ashutosh, Michal, Jose)
- Simplify locking in new_vma (Brost)
- Remove xe_irq_shutdown (Ilia)
The following changes since commit 541b1b0a8fc235bca355921eb7f3f59a8efa3e9a:

agp: add missing MODULE_DESCRIPTION() macros (2024-06-24 16:20:58 +1000)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-06-26

for you to fetch changes up to 406d058dc323ae152d380ac90153eb56a75850c1:

drm/xe/oa/uapi: Allow preemption to be disabled on the stream exec queue (2024-06-26 18:25:46 -0400)

----------------------------------------------------------------
UAPI Changes:
- New uapi adding OA functionality to Xe (Ashutosh)

Cross-subsystem Changes:
- devcoredump: Add dev_coredumpm_timeout (Jose)

Driver Changes:
- More SRIOV preparation, including GuC communication improvements (Michal)
- Kconfig update: do not select ACPI_BUTTON (Jani)
- Rework GPU page fault handling (Brost)
- Forcewake clean-up and fixes (Himal, Michal)
- Drop EXEC_QUEUE_FLAG_BANNED (Brost)
- Xe/Xe2 Workarounds fixes and additions (Tejas, Akshata, Sai, Vinay)
- Xe devcoredump changes (Jose)
- Tracing cleanup and add mmio tracing (RK)
- Add BMG PCI IDs (Roper)
- Scheduler fixes and improvements (Brost)
- Some overal driver clean-up around headers and print macros (Michal)
- Rename xe_exec_queue::compute to xe_exec_queue::lr (Francois)
- Improve RTP rules to allow easier 'OR' conditions in WA declaration (Lucas)
- Use ttm_uncached for BO with NEEDS_UC flag (Michal)
- Other OA related work and fixes (Ashutosh, Michal, Jose)
- Simplify locking in new_vma (Brost)
- Remove xe_irq_shutdown (Ilia)

----------------------------------------------------------------
Akshata Jahagirdar (1):
drm/xe/xe2lpg: Add Wa_14021490052

Ashutosh Dixit (21):
drm/xe/perf/uapi: "Perf" layer to support multiple perf counter stream types
drm/xe/perf/uapi: Add perf_stream_paranoid sysctl
drm/xe/oa/uapi: Add OA data formats
drm/xe/oa/uapi: Initialize OA units
drm/xe/oa/uapi: Add/remove OA config perf ops
drm/xe/oa/uapi: Define and parse OA stream properties
drm/xe/oa: OA stream initialization (OAG)
drm/xe/oa/uapi: Expose OA stream fd
drm/xe/oa/uapi: Read file_operation
drm/xe/oa: Add OAR support
drm/xe/oa: Add OAC support
drm/xe/oa/uapi: Query OA unit properties
drm/xe/oa/uapi: OA buffer mmap
drm/xe/oa: Add MMIO trigger support
drm/xe/oa: Override GuC RC with OA on PVC
drm/xe/oa: Changes to OA_TAKEN
drm/xe/oa: Enable Xe2+ overrun mode
drm/xe/oa: Remove WARN_ON's for unsupported configurations
drm/xe/oa: Fix kernel doc in xe_drm.h
drm/xe/oa: Allow stream enable/disable functions to return error
drm/xe/oa/uapi: Allow preemption to be disabled on the stream exec queue

Francois Dugast (2):
drm/xe/sched_job: Promote xe_sched_job_add_deps()
drm/xe/exec_queue: Rename xe_exec_queue::compute to xe_exec_queue::lr

Himal Prasad Ghimiray (3):
drm/xe: Cleanup force wake registers bit definitions
drm/xe: Ensure caller uses sole domain for xe_force_wake_assert_held
drm/xe: Check valid domain is passed in xe_force_wake_ref

Ilia Levi (1):
drm/xe/irq: remove xe_irq_shutdown

Jani Nikula (1):
drm/xe: do not select ACPI_BUTTON

José Roberto de Souza (3):
devcoredump: Add dev_coredumpm_timeout()
drm/xe: Increase devcoredump timeout
drm/xe/oa: Call xe_oa_emit_oa_config() with new config when updating config

Lucas De Marchi (5):
drm/xe/rtp: Allow to match 0 sr entries
drm/xe/rtp: Expand max rules/actions per entry
drm/xe/rtp: Allow to OR rules
drm/xe/rtp: Add match on any GT
drm/xe/xe2: Add proper check for media in Wa_14020756599

Matt Roper (1):
drm/xe/bmg: Add PCI IDs

Matthew Brost (15):
drm/xe: Rework GPU page fault handling
drm/xe: Drop EXEC_QUEUE_FLAG_BANNED
drm/xe: Add LRC ctx timestamp support functions
drm/xe: Add MI_COPY_MEM_MEM GPU instruction definitions
drm/xe: Emit ctx timestamp copy in ring ops
drm/xe: Add ctx timestamp to LRC snapshot
drm/xe: Add xe_gt_clock_interval_to_ms helper
drm/xe: Improve unexpected state error messages
drm/xe: Assert runnable state in handle_sched_done
drm/xe: Add GuC state asserts to deregister_exec_queue
drm/xe: Add pending disable assert to handle_sched_done
drm/xe: Add killed, banned, or wedged as stick bit during GuC reset
drm/xe: Sample ctx timestamp to determine if jobs have timed out
drm/xe: Invert runnable_state / pending enable check and assert
drm/xe: Simplify locking in new_vma

Michal Wajdeczko (38):
drm/xe/guc: Split g2h worker function
drm/xe/guc: Allow CTB G2H processing without G2H IRQ
drm/xe/pf: Assert LMEM provisioning is done only on DGFX
drm/xe/guc: Move H2G SETUP_PC_GUCRC definition to SLPC ABI
drm/xe/guc: Add pc_to_ct() helper
drm/xe/guc: Prefer GT oriented messages in xe_guc_pc
drm/xe/guc: Drop unused legacy GuC message ABI definitions
drm/xe/guc: Add kernel-doc for HXG Fast Request
drm/xe: Prefer GT oriented messages in xe_force_wake.c
drm/xe: Kill fw_to_gt() helper
drm/xe: Include additional info on failed force-wake operation
drm/xe: Combine common force-wake code into helpers
drm/xe/vf: Ignore force-wake requests if VF
drm/xe/vf: Use correct check for being a VF driver
drm/xe: Drop duplicated declaration
drm/xe: Use fixed CCS mode when running in SR-IOV mode
drm/xe/uc: Fix and start using xe_uc_fw_sanitize()
drm/xe: Allow const pointer when checking SR-IOV mode
drm/xe/vf: Don't touch GuC irq registers if using memory irqs
drm/xe: Use ttm_uncached for BO with NEEDS_UC flag
drm/xe/guc: Move ARAT interrupts enabling to the upload step
drm/xe/oa: Fix potential NPD when OA is not initialized
drm/xe/vf: Disable features that do not apply to VFs
drm/xe/vf: Don't run any save-restore RTP actions if VF
drm/xe/vf: Don't apply tile workarounds if VF
drm/xe/vf: Don't change hwe IRQ masks if using memory IRQs
drm/xe/vf: Don't initialize OA if VF
drm/xe/vf: Don't support gtidle if VF
drm/xe/vf: Don't use register based TLB invalidation if VF
drm/xe/vf: Skip engine ring enabling if VF
drm/xe/vf: Custom HuC initialization if VF
drm/xe/huc: Use GT oriented error messages in xe_huc.c
drm/xe/vf: Skip attempt to start GuC PC if VF
drm/xe/guc: Demote the H2G retry log message to debug
drm/xe/guc: Add more GuC error codes to ABI
drm/xe/guc: Print GuC error codes as hex value
drm/xe/pf: Trigger explicit FLR while disabling VFs
drm/xe/pf: Disable VFs on remove

Radhakrishna Sripada (6):
drm/xe/trace: Extract bo, vm, vma traces
drm/xe/trace: Extract guc related traces
drm/xe/trace: Print device_id in xe_trace_bo events
drm/xe/trace: Print device_id in xe_trace_guc events
drm/xe/trace: Print device_id in xe_trace events
drm/xe: Add reg read/write trace

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/xelpgp: Extend Wa_14019877138 to graphics 12.74

Tejas Upadhyay (1):
drm/xe/xe2lpm: Fixup Wa_14020756599

Vinay Belgaumkar (2):
drm/xe/lnl: Apply Wa_22019338487
drm/xe/guc: Request max GT freq during resume

drivers/base/devcoredump.c | 23 +-
drivers/gpu/drm/xe/Kconfig | 1 -
drivers/gpu/drm/xe/Makefile | 7 +
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 6 -
drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h | 22 +
drivers/gpu/drm/xe/abi/guc_errors_abi.h | 31 +
drivers/gpu/drm/xe/abi/guc_messages_abi.h | 41 +-
drivers/gpu/drm/xe/display/xe_fb_pin.c | 4 +-
drivers/gpu/drm/xe/instructions/xe_mi_commands.h | 5 +
drivers/gpu/drm/xe/regs/xe_engine_regs.h | 2 +
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 11 +-
drivers/gpu/drm/xe/regs/xe_oa_regs.h | 100 +
drivers/gpu/drm/xe/tests/xe_rtp_test.c | 64 +-
drivers/gpu/drm/xe/xe_bo.c | 11 +-
drivers/gpu/drm/xe/xe_devcoredump.c | 8 +-
drivers/gpu/drm/xe/xe_device.c | 45 +-
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_exec.c | 8 +-
drivers/gpu/drm/xe/xe_exec_queue.c | 8 +-
drivers/gpu/drm/xe/xe_exec_queue_types.h | 26 +-
drivers/gpu/drm/xe/xe_force_wake.c | 102 +-
drivers/gpu/drm/xe/xe_force_wake.h | 13 +-
drivers/gpu/drm/xe/xe_ggtt.c | 42 +-
drivers/gpu/drm/xe/xe_ggtt.h | 1 -
drivers/gpu/drm/xe/xe_ggtt_types.h | 12 +-
drivers/gpu/drm/xe/xe_gsc.c | 5 +
drivers/gpu/drm/xe/xe_gt.c | 24 +
drivers/gpu/drm/xe/xe_gt.h | 1 +
drivers/gpu/drm/xe/xe_gt_ccs_mode.c | 9 +-
drivers/gpu/drm/xe/xe_gt_clock.c | 20 +
drivers/gpu/drm/xe/xe_gt_clock.h | 1 +
drivers/gpu/drm/xe/xe_gt_idle.c | 16 +
drivers/gpu/drm/xe/xe_gt_pagefault.c | 144 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 15 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c | 21 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.h | 1 +
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 31 +-
drivers/gpu/drm/xe/xe_gt_types.h | 4 +
drivers/gpu/drm/xe/xe_guc.c | 33 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 72 +-
drivers/gpu/drm/xe/xe_guc_ct_types.h | 2 +
drivers/gpu/drm/xe/xe_guc_pc.c | 204 +-
drivers/gpu/drm/xe/xe_guc_pc.h | 5 +
drivers/gpu/drm/xe/xe_guc_pc_types.h | 4 +
drivers/gpu/drm/xe/xe_guc_submit.c | 346 ++-
drivers/gpu/drm/xe/xe_huc.c | 30 +-
drivers/gpu/drm/xe/xe_hw_engine.c | 4 +-
drivers/gpu/drm/xe/xe_hw_engine_types.h | 2 +
drivers/gpu/drm/xe/xe_irq.c | 8 +-
drivers/gpu/drm/xe/xe_irq.h | 1 -
drivers/gpu/drm/xe/xe_lrc.c | 89 +-
drivers/gpu/drm/xe/xe_lrc.h | 6 +
drivers/gpu/drm/xe/xe_migrate.c | 28 +-
drivers/gpu/drm/xe/xe_mmio.c | 23 +-
drivers/gpu/drm/xe/xe_module.c | 5 +
drivers/gpu/drm/xe/xe_oa.c | 2510 ++++++++++++++++++++++
drivers/gpu/drm/xe/xe_oa.h | 27 +
drivers/gpu/drm/xe/xe_oa_types.h | 242 +++
drivers/gpu/drm/xe/xe_pci.c | 8 +-
drivers/gpu/drm/xe/xe_pci_sriov.c | 14 +
drivers/gpu/drm/xe/xe_perf.c | 92 +
drivers/gpu/drm/xe/xe_perf.h | 20 +
drivers/gpu/drm/xe/xe_preempt_fence.c | 2 +-
drivers/gpu/drm/xe/xe_pt.c | 8 +-
drivers/gpu/drm/xe/xe_query.c | 77 +
drivers/gpu/drm/xe/xe_reg_whitelist.c | 24 +-
drivers/gpu/drm/xe/xe_ring_ops.c | 21 +
drivers/gpu/drm/xe/xe_rtp.c | 45 +-
drivers/gpu/drm/xe/xe_rtp.h | 69 +-
drivers/gpu/drm/xe/xe_rtp_helpers.h | 2 +
drivers/gpu/drm/xe/xe_rtp_types.h | 3 +
drivers/gpu/drm/xe/xe_sched_job.c | 6 +
drivers/gpu/drm/xe/xe_sched_job.h | 3 +
drivers/gpu/drm/xe/xe_sriov.h | 6 +-
drivers/gpu/drm/xe/xe_trace.h | 380 +---
drivers/gpu/drm/xe/xe_trace_bo.c | 9 +
drivers/gpu/drm/xe/xe_trace_bo.h | 247 +++
drivers/gpu/drm/xe/xe_trace_guc.c | 9 +
drivers/gpu/drm/xe/xe_trace_guc.h | 110 +
drivers/gpu/drm/xe/xe_uc_fw.h | 2 +-
drivers/gpu/drm/xe/xe_vm.c | 101 +-
drivers/gpu/drm/xe/xe_wa.c | 25 +-
drivers/gpu/drm/xe/xe_wa.h | 2 -
drivers/gpu/drm/xe/xe_wa_oob.rules | 1 +
include/drm/intel/xe_pciids.h | 7 +
include/linux/devcoredump.h | 53 +-
include/uapi/drm/xe_drm.h | 308 +++
87 files changed, 5355 insertions(+), 829 deletions(-)
create mode 100644 drivers/gpu/drm/xe/regs/xe_oa_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_oa.c
create mode 100644 drivers/gpu/drm/xe/xe_oa.h
create mode 100644 drivers/gpu/drm/xe/xe_oa_types.h
create mode 100644 drivers/gpu/drm/xe/xe_perf.c
create mode 100644 drivers/gpu/drm/xe/xe_perf.h
create mode 100644 drivers/gpu/drm/xe/xe_trace_bo.c
create mode 100644 drivers/gpu/drm/xe/xe_trace_bo.h
create mode 100644 drivers/gpu/drm/xe/xe_trace_guc.c
create mode 100644 drivers/gpu/drm/xe/xe_trace_guc.h