[PULL] drm-xe-next

Lucas De Marchi lucas.demarchi at intel.com
Wed Aug 28 19:18:28 UTC 2024


Hi Dave and Sima,

Second drm-xe-next pull request for the 6.12 cycle. This includes the
pull request from last week since it was not applied due to the ttm
patch. That patch is now reverted and replacement on the back burner.

The only UAPI change is actually a fix for building with gcc 5.

Aside from the additional fixes compared to last week, 2 important
patches to remove the force_probe requirement for LNL and BMG.  Those
are the first platforms to be officially supported by the xe driver: one
integrated and one discrete. For BMG there are still some necessary
changes going through the drm-intel-next pull request later this week.

Cheers,
Lucas De Marchi

drm-xe-next-2024-08-28:
UAPI Changes:
- Fix OA format masks which were breaking build with gcc-5

Cross-subsystem Changes:

Driver Changes:
- Use dma_fence_chain_free in chain fence unused as a sync (Matthew Brost)
- Refactor hw engine lookup and mmio access to be used in more places
   (Dominik, Matt Auld, Mika Kuoppala)
- Enable priority mem read for Xe2 and later (Pallavi Mishra)
- Fix PL1 disable flow in xe_hwmon_power_max_write (Karthik)
- Fix refcount and speedup devcoredump (Matthew Brost)
- Add performance tuning changes to Xe2 (Akshata, Shekhar)
- Fix OA sysfs entry (Ashutosh)
- Add first GuC firmware support for BMG (Julia)
- Bump minimum GuC firmware for platforms under force_probe to match LNL
   and BMG (Julia)
- Fix access check on user fence creation (Nirmoy)
- Add/document workarounds for Xe2 (Julia, Daniele, John, Tejas)
- Document workaround and use proper WA infra (Matt Roper)
- Fix VF configuration on media GT (Michal Wajdeczko)
- Fix VM dma-resv lock (Matthew Brost)
- Allow suspend/resume exec queue backend op to be called multiple times
   (Matthew Brost)
- Add GT stats to debugfs (Nirmoy)
- Add hwconfig to debugfs (Matt Roper)
- Compile out all debugfs code with ONFIG_DEUBG_FS=n (Lucas)
- Remove dead kunit code (Jani Nikula)
- Refactor drvdata storing to help display (Jani Nikula)
- Cleanup unsused xe parameter in pte handling (Himal)
- Rename s/enable_display/probe_display/ for clarity (Lucas)
- Fix missing MCR annotation in couple of registers (Tejas)
- Fix DGFX display suspend/resume (Maarten)
- Prepare exec_queue_kill for PXP handling (Daniele)
- Fix devm/drmm issues (Daniele, Matthew Brost)
- Fix tile and ggtt fini sequences (Matthew Brost)
- Fix crashes when probing without firmware in place (Daniele, Matthew Brost)
- Use xe_managed for kernel BOs (Daniele, Matthew Brost)
- Future-proof dss_per_group calculation by using hwconfig (Matt Roper)
- Use reserved copy engine for user binds on faulting devices
   (Matthew Brost)
- Allow mixing dma-fence jobs and long-running faulting jobs (Francois)
- Cleanup redundant arg when creating use BO (Nirmoy)
- Prevent UAF around preempt fence (Auld)
- Fix display suspend/resume (Maarten)
- Use vma_pages() helper (Thorsten)
- Calculate pagefault queue size (Stuart, Matthew Auld)
- Fix missing pagefault wq destroy (Stuart)
- Fix lifetime handling of HW fence ctx (Matthew Brost)
- Fix order destroy order for jobs (Matthew Brost)
- Fix TLB invalidation for media GT (Matthew Brost)
- Document GGTT (Rodrigo Vivi)
- Refactor GGTT layering and fix runtime outer protection (Rodrigo Vivi)
- Handle HPD polling on display pm runtime suspend/resume (Imre, Vinod)
- Drop unrequired NULL checks (Apoorva, Himal)
- Use separate rpm lockdep map for non-d3cold-capable devices (Thomas Hellström)
- Support "nomodeset" kernel command-line option (Thomas Zimmermann)
- Drop force_probe requirement for LNL and BMG (Lucas, Balasubramani)
The following changes since commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a:

   Merge tag 'drm-intel-next-2024-08-13' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next (2024-08-16 12:56:42 +1000)

are available in the Git repository at:

   https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-08-28

for you to fetch changes up to 3adcf970dc7ec0469ec3116a5a8be9161d17a335:

   drm/xe/bmg: Drop force_probe requirement (2024-08-28 10:47:03 -0700)

----------------------------------------------------------------
UAPI Changes:
- Fix OA format masks which were breaking build with gcc-5

Cross-subsystem Changes:

Driver Changes:
- Use dma_fence_chain_free in chain fence unused as a sync (Matthew Brost)
- Refactor hw engine lookup and mmio access to be used in more places
   (Dominik, Matt Auld, Mika Kuoppala)
- Enable priority mem read for Xe2 and later (Pallavi Mishra)
- Fix PL1 disable flow in xe_hwmon_power_max_write (Karthik)
- Fix refcount and speedup devcoredump (Matthew Brost)
- Add performance tuning changes to Xe2 (Akshata, Shekhar)
- Fix OA sysfs entry (Ashutosh)
- Add first GuC firmware support for BMG (Julia)
- Bump minimum GuC firmware for platforms under force_probe to match LNL
   and BMG (Julia)
- Fix access check on user fence creation (Nirmoy)
- Add/document workarounds for Xe2 (Julia, Daniele, John, Tejas)
- Document workaround and use proper WA infra (Matt Roper)
- Fix VF configuration on media GT (Michal Wajdeczko)
- Fix VM dma-resv lock (Matthew Brost)
- Allow suspend/resume exec queue backend op to be called multiple times
   (Matthew Brost)
- Add GT stats to debugfs (Nirmoy)
- Add hwconfig to debugfs (Matt Roper)
- Compile out all debugfs code with ONFIG_DEUBG_FS=n (Lucas)
- Remove dead kunit code (Jani Nikula)
- Refactor drvdata storing to help display (Jani Nikula)
- Cleanup unsused xe parameter in pte handling (Himal)
- Rename s/enable_display/probe_display/ for clarity (Lucas)
- Fix missing MCR annotation in couple of registers (Tejas)
- Fix DGFX display suspend/resume (Maarten)
- Prepare exec_queue_kill for PXP handling (Daniele)
- Fix devm/drmm issues (Daniele, Matthew Brost)
- Fix tile and ggtt fini sequences (Matthew Brost)
- Fix crashes when probing without firmware in place (Daniele, Matthew Brost)
- Use xe_managed for kernel BOs (Daniele, Matthew Brost)
- Future-proof dss_per_group calculation by using hwconfig (Matt Roper)
- Use reserved copy engine for user binds on faulting devices
   (Matthew Brost)
- Allow mixing dma-fence jobs and long-running faulting jobs (Francois)
- Cleanup redundant arg when creating use BO (Nirmoy)
- Prevent UAF around preempt fence (Auld)
- Fix display suspend/resume (Maarten)
- Use vma_pages() helper (Thorsten)
- Calculate pagefault queue size (Stuart, Matthew Auld)
- Fix missing pagefault wq destroy (Stuart)
- Fix lifetime handling of HW fence ctx (Matthew Brost)
- Fix order destroy order for jobs (Matthew Brost)
- Fix TLB invalidation for media GT (Matthew Brost)
- Document GGTT (Rodrigo Vivi)
- Refactor GGTT layering and fix runtime outer protection (Rodrigo Vivi)
- Handle HPD polling on display pm runtime suspend/resume (Imre, Vinod)
- Drop unrequired NULL checks (Apoorva, Himal)
- Use separate rpm lockdep map for non-d3cold-capable devices (Thomas Hellström)
- Support "nomodeset" kernel command-line option (Thomas Zimmermann)
- Drop force_probe requirement for LNL and BMG (Lucas, Balasubramani)

----------------------------------------------------------------
Akshata Jahagirdar (1):
       drm/xe/xe2: Introduce performance changes

Apoorva Singh (1):
       drm/xe: Remove NULL check of lrc->bo in xe_lrc_snapshot_capture()

Ashutosh Dixit (1):
       drm/xe/observation: Drop empty sysctl table entry

Balasubramani Vivekanandan (1):
       drm/xe/bmg: Drop force_probe requirement

Daniele Ceraolo Spurio (5):
       drm/xe: fix WA 14018094691
       drm/xe: Make exec_queue_kill safe to call twice
       drm/xe: use devm instead of drmm for managed bo
       drm/xe/uc: Use managed bo for HuC and GSC objects
       drm/xe/uc: Use devm to register cleanup that includes exec_queues

Dominik Grzegorzek (2):
       drm/xe: Move and export xe_hw_engine lookup.
       drm/xe: Export xe_hw_engine's mmio accessors

Francois Dugast (11):
       drm/xe/hw_engine_group: Introduce xe_hw_engine_group
       drm/xe/guc_submit: Make suspend_wait interruptible
       'drm/xe/hw_engine_group: Register hw engine group's exec queues
       drm/xe/hw_engine_group: Add helper to suspend faulting LR jobs
       drm/xe/exec_queue: Remove duplicated code
       drm/xe/exec_queue: Prepare last fence for hw engine group resume context
       drm/xe/hw_engine_group: Add helper to wait for dma fence jobs
       drm/xe/hw_engine_group: Ensure safe transition between execution modes
       drm/xe/exec: Switch hw engine group execution mode upon job submission
       drm/xe/vm: Remove restriction that all VMs must be faulting if one is
       drm/xe/device: Remove unused xe_device::usm::num_vm_in_*

Himal Prasad Ghimiray (5):
       drm/xe: Remove unused xe parameter
       drm/xe: Remove extra dma_fence_put on xe_sync_entry_add_deps failure
       drm/xe: Remove unrequired NULL checks in xe_sync_entry_cleanup
       drm/xe: Remove unrequired NULL check in xe_sched_job_free_fences
       drm/xe: Fix NPD in ggtt_node_remove()

Imre Deak (2):
       drm/xe: Suspend/resume user access only during system s/r
       drm/xe: Handle polling only for system s/r in xe_display_pm_suspend/resume()

Jani Nikula (3):
       drm/xe/tests: remove unused leftover xe_call_for_each_device()
       drm/xe: use pdev_to_xe_device() instead of pci_get_drvdata() directly
       drm/xe: add kdev_to_xe_device() helper and use it

Julia Filipchuk (3):
       drm/xe/guc: Bump minimum required GuC version to v70.29.2
       drm/xe/guc: Define GuC version v70.29.2 for BMG
       drm/xe/guc: Enable w/a 14022293748 and 22019794406

Karthik Poosa (1):
       drm/xe/hwmon: Fix PL1 disable flow in xe_hwmon_power_max_write

Lucas De Marchi (4):
       drm/xe: Allow to compile out debugfs
       drm/xe: Rename enable_display module param
       Merge drm/drm-next into drm-xe-next
       drm/xe/lnl: Drop force_probe requirement

Maarten Lankhorst (2):
       drm/xe/display: Match i915 driver suspend/resume sequences better
       drm/xe/display: Make display suspend/resume work on discrete

Matt Roper (3):
       drm/xe: Name and document Wa_14019789679
       drm/xe: Add debugfs to dump GuC's hwconfig
       drm/xe/mcr: Try to derive dss_per_grp from hwconfig attributes

Matthew Auld (3):
       drm/xe: fix engine_class bounds check again
       drm/xe: prevent UAF around preempt fence
       drm/xe: fixup xe_alloc_pf_queue

Matthew Brost (24):
       drm/xe: Use dma_fence_chain_free in chain fence unused as a sync
       drm/xe: Take ref to VM in delayed snapshot
       drm/printer: Allow NULL data in devcoredump printer
       drm/xe: Faster devcoredump
       drm/xe: Only check last fence on user binds
       drm/xe: Move VM dma-resv lock from xe_exec_queue_create to __xe_exec_queue_init
       drm/xe: Add xe_sched_msg_lock/unlock helper
       drm/xe: Reinit msg link when processing a message
       drm/xe: Add xe_sched_add_msg_locked helper
       drm/xe: Only enable scheduling upon resume if needed
       drm/xe: Allow suspend / resume to be safely called multiple times
       drm/xe: Fix tile fini sequence
       drm/xe: Use for_each_remote_tile rather than manual check
       drm/xe: Use reserved copy engine for user binds on faulting devices
       drm/xe: Drop HW fence pointer to HW fence ctx
       drm/xe: Free job before xe_exec_queue_put
       drm/xe: Invalidate media_gt TLBs
       drm/xe: Invalidate media_gt TLBs in PT code
       Revert "drm/xe: Invalidate media_gt TLBs in PT code"
       drm/xe: Move ggtt_fini to devm managed
       drm/xe: Set firmware state to loadable before registering guc_fini_hw
       drm/xe: Drop warn on xe_guc_pc_gucrc_disable in guc pc fini
       drm/xe: Move hw_engine_fini to devm managed
       drm/xe: Update xe_sa to use xe_managed_bo_create_pin_map

Michal Wajdeczko (1):
       drm/xe/pf: Fix VF config validation on multi-GT platforms

Mika Kuoppala (1):
       drm/xe: Add kernel doc for xe_hw_engine_lookup

Nathan Chancellor (1):
       drm/xe: Fix total initialization in xe_ggtt_print_holes()

Nirmoy Das (9):
       drm/xe: Fix access_ok check in user_fence_create
       drm/xe/gt: Add APIs for printing stats over debugfs
       drm/xe: Add stats for tlb invalidation count
       drm/xe/migrate: Parameterize ccs and bo data clear in xe_migrate_clear()
       drm/xe: Remove redundant param from xe_bo_create_user
       drm/ttm: Add a flag to allow drivers to skip clear-on-free
       drm/xe/lnl: Offload system clear page activity to GPU
       Revert "drm/xe/lnl: Offload system clear page activity to GPU"
       Revert "drm/ttm: Add a flag to allow drivers to skip clear-on-free"

Pallavi Mishra (1):
       drm/xe/xe2: Enable Priority Mem Read

Rodrigo Vivi (12):
       drm/xe: Removed unused xe_ggtt_printk
       drm/xe: Introduce GGTT documentation
       drm/xe: Remove unnecessary drm_mm.h includes
       drm/{i915, xe}: Avoid direct inspection of dpt_vma from outside dpt
       drm/xe: Encapsulate drm_mm_node inside xe_ggtt_node
       drm/xe: Rename xe_ggtt_node related functions
       drm/xe: Limit drm_mm_node_allocated access to xe_ggtt_node
       drm/xe: Introduce xe_ggtt_largest_hole
       drm/xe: Introduce xe_ggtt_print_holes
       drm/xe: Refactor xe_ggtt balloon functions to make the node clear
       drm/xe: Make xe_ggtt_node struct independent
       drm/xe: Fix missing runtime outer protection for ggtt_remove_node

Shekhar Chauhan (1):
       drm/xe/xe2: Add performance turning changes

Stuart Summers (3):
       drm/xe: Fix missing workqueue destroy in xe_gt_pagefault
       drm/xe: Use topology to determine page fault queue size
       drm/xe/guc: Bump the G2H queue size to account for page faults

Tejas Upadhyay (4):
       drm/xe/xe2hpg: Add Wa_14021821874
       drm/xe: Move enable host l2 VRAM post MCR init
       drm/xe: Write all slices if its mcr register
       drm/xe: Define STATELESS_COMPRESSION_CTRL as mcr register

Thomas Hellström (1):
       drm/xe: Use separate rpm lockdep map for non-d3cold-capable devices

Thomas Zimmermann (1):
       drm/xe: Support 'nomodeset' kernel command-line option

Thorsten Blum (1):
       drm/xe/oa: Use vma_pages() helper function in xe_oa_mmap()

Vinod Govindapillai (1):
       drm/xe/display: handle HPD polling in display runtime suspend/resume

  Documentation/gpu/xe/xe_mm.rst                     |  15 +
  drivers/gpu/drm/drm_print.c                        |  13 +-
  drivers/gpu/drm/i915/display/intel_dpt.c           |   4 +
  drivers/gpu/drm/i915/display/intel_dpt.h           |   3 +
  drivers/gpu/drm/i915/display/skl_universal_plane.c |   3 +-
  drivers/gpu/drm/xe/Makefile                        |  18 +-
  drivers/gpu/drm/xe/abi/guc_klvs_abi.h              |   1 +
  drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h  |   7 +-
  drivers/gpu/drm/xe/display/xe_display.c            | 115 +++--
  drivers/gpu/drm/xe/display/xe_display.h            |   4 +
  drivers/gpu/drm/xe/display/xe_fb_pin.c             |  50 ++-
  drivers/gpu/drm/xe/regs/xe_engine_regs.h           |   1 +
  drivers/gpu/drm/xe/regs/xe_gt_regs.h               |  10 +-
  drivers/gpu/drm/xe/tests/xe_bo.c                   |   8 +-
  drivers/gpu/drm/xe/tests/xe_dma_buf.c              |   2 +-
  drivers/gpu/drm/xe/tests/xe_migrate.c              |  24 +-
  drivers/gpu/drm/xe/tests/xe_pci.c                  |  52 ---
  drivers/gpu/drm/xe/tests/xe_pci_test.h             |   1 -
  drivers/gpu/drm/xe/xe_bo.c                         |  26 +-
  drivers/gpu/drm/xe/xe_bo.h                         |  10 +-
  drivers/gpu/drm/xe/xe_bo_types.h                   |   5 +-
  drivers/gpu/drm/xe/xe_debugfs.h                    |   4 +
  drivers/gpu/drm/xe/xe_devcoredump.c                | 111 +++--
  drivers/gpu/drm/xe/xe_devcoredump_types.h          |   8 +
  drivers/gpu/drm/xe/xe_device.c                     |   5 +-
  drivers/gpu/drm/xe/xe_device.h                     |  15 +-
  drivers/gpu/drm/xe/xe_device_types.h               |  17 +-
  drivers/gpu/drm/xe/xe_exec.c                       |  20 +-
  drivers/gpu/drm/xe/xe_exec_queue.c                 | 237 +++++-----
  drivers/gpu/drm/xe/xe_exec_queue.h                 |   8 +-
  drivers/gpu/drm/xe/xe_exec_queue_types.h           |   4 +-
  drivers/gpu/drm/xe/xe_ggtt.c                       | 487 ++++++++++++++++-----
  drivers/gpu/drm/xe/xe_ggtt.h                       |  28 +-
  drivers/gpu/drm/xe/xe_ggtt_types.h                 |  54 ++-
  drivers/gpu/drm/xe/xe_gpu_scheduler.c              |  23 +-
  drivers/gpu/drm/xe/xe_gpu_scheduler.h              |  12 +
  drivers/gpu/drm/xe/xe_gsc.c                        |  20 +-
  drivers/gpu/drm/xe/xe_gsc_proxy.c                  |  45 +-
  drivers/gpu/drm/xe/xe_gt.c                         |  10 +-
  drivers/gpu/drm/xe/xe_gt_debugfs.c                 |  13 +
  drivers/gpu/drm/xe/xe_gt_mcr.c                     |  40 +-
  drivers/gpu/drm/xe/xe_gt_pagefault.c               |  75 +++-
  drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c         | 119 ++---
  drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h   |   5 +-
  drivers/gpu/drm/xe/xe_gt_sriov_vf.c                |  44 +-
  drivers/gpu/drm/xe/xe_gt_stats.c                   |  49 +++
  drivers/gpu/drm/xe/xe_gt_stats.h                   |  29 ++
  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c        |   2 +
  drivers/gpu/drm/xe/xe_gt_types.h                   |  24 +-
  drivers/gpu/drm/xe/xe_guc.c                        |   4 +-
  drivers/gpu/drm/xe/xe_guc.h                        |  10 +
  drivers/gpu/drm/xe/xe_guc_ads.c                    |   6 +
  drivers/gpu/drm/xe/xe_guc_ct.c                     |  12 +-
  drivers/gpu/drm/xe/xe_guc_hwconfig.c               |  97 ++++
  drivers/gpu/drm/xe/xe_guc_hwconfig.h               |   3 +
  drivers/gpu/drm/xe/xe_guc_pc.c                     |   2 +-
  drivers/gpu/drm/xe/xe_guc_submit.c                 |  62 ++-
  drivers/gpu/drm/xe/xe_huc.c                        |  19 +-
  drivers/gpu/drm/xe/xe_hw_engine.c                  | 149 +++++--
  drivers/gpu/drm/xe/xe_hw_engine.h                  |  10 +
  drivers/gpu/drm/xe/xe_hw_engine_group.c            | 372 ++++++++++++++++
  drivers/gpu/drm/xe/xe_hw_engine_group.h            |  29 ++
  drivers/gpu/drm/xe/xe_hw_engine_group_types.h      |  51 +++
  drivers/gpu/drm/xe/xe_hw_engine_types.h            |   2 +
  drivers/gpu/drm/xe/xe_hw_fence.c                   |   9 +-
  drivers/gpu/drm/xe/xe_hw_fence_types.h             |   7 +-
  drivers/gpu/drm/xe/xe_hwmon.c                      |   3 +-
  drivers/gpu/drm/xe/xe_lrc.c                        |  50 ++-
  drivers/gpu/drm/xe/xe_migrate.c                    |  29 +-
  drivers/gpu/drm/xe/xe_migrate.h                    |   9 +-
  drivers/gpu/drm/xe/xe_mmio.c                       |   4 +-
  drivers/gpu/drm/xe/xe_module.c                     |  54 ++-
  drivers/gpu/drm/xe/xe_module.h                     |   2 +-
  drivers/gpu/drm/xe/xe_oa.c                         |   3 +-
  drivers/gpu/drm/xe/xe_observation.c                |   1 -
  drivers/gpu/drm/xe/xe_pci.c                        |  12 +-
  drivers/gpu/drm/xe/xe_pm.c                         |  99 ++++-
  drivers/gpu/drm/xe/xe_pm.h                         |   1 +
  drivers/gpu/drm/xe/xe_preempt_fence.c              |   3 +-
  drivers/gpu/drm/xe/xe_preempt_fence_types.h        |   2 +
  drivers/gpu/drm/xe/xe_pt.c                         |  10 +-
  drivers/gpu/drm/xe/xe_res_cursor.h                 |   1 -
  drivers/gpu/drm/xe/xe_sa.c                         |  13 +-
  drivers/gpu/drm/xe/xe_sa_types.h                   |   1 +
  drivers/gpu/drm/xe/xe_sched_job.c                  |   6 +-
  drivers/gpu/drm/xe/xe_sync.c                       |  21 +-
  drivers/gpu/drm/xe/xe_trace.h                      |   2 +-
  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c             |   1 -
  drivers/gpu/drm/xe/xe_tuning.c                     |  13 +-
  drivers/gpu/drm/xe/xe_uc_fw.c                      |  28 +-
  drivers/gpu/drm/xe/xe_vm.c                         |  90 ++--
  drivers/gpu/drm/xe/xe_wa.c                         |   4 +
  drivers/gpu/drm/xe/xe_wa_oob.rules                 |   6 +
  include/drm/drm_print.h                            |  54 ++-
  94 files changed, 2381 insertions(+), 865 deletions(-)
  create mode 100644 drivers/gpu/drm/xe/xe_gt_stats.c
  create mode 100644 drivers/gpu/drm/xe/xe_gt_stats.h
  create mode 100644 drivers/gpu/drm/xe/xe_hw_engine_group.c
  create mode 100644 drivers/gpu/drm/xe/xe_hw_engine_group.h
  create mode 100644 drivers/gpu/drm/xe/xe_hw_engine_group_types.h


More information about the dri-devel mailing list