[Intel-gfx] [PULL] drm-intel-gt-next

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Thu Feb 17 10:26:33 UTC 2022


Hi Dave & Daniel,

Here is the first drm-intel-gt-next feature PR towards v5.18.

For DG2 adds subplatform G12, missing workarounds and fixes GuC
loading on ARM64. C0/D0 stepping info added for RPL-S.

For uAPI enables support for simple parallel submission with
execlists which was previously enabled only for GuC.

Further fixes for PMU metrics when GuC is enabled, better error
reporting for GuC loading failures. Fix for PXP unbind splat.
Updates to GuC version 69.0.3 with improvements to GT reset
scenarios.

The rest is mostly refactoring of the memory management code,
as highlights introduction of async unbinding/migration and
removal of short-term pinning in execbuf.

Then a few selftest and coding style fixes.

Regards, Joonas

***

drm-intel-gt-next-2022-02-17:

UAPI Changes:

- Weak parallel submission support for execlists

  Minimal implementation of the parallel submission support for
  execlists backend that was previously only implemented for GuC.
  Support one sibling non-virtual engine.

Core Changes:

- Two backmerges of drm/drm-next for header file renames/changes and
  i915_regs reorganization

Driver Changes:

- Add new DG2 subplatform: DG2-G12 (Matt R)
- Add new DG2 workarounds (Matt R, Ram, Bruce)
- Handle pre-programmed WOPCM registers for DG2+ (Daniele)
- Update guc shim control programming on XeHP SDV+ (Daniele)
- Add RPL-S C0/D0 stepping information (Anusha)
- Improve GuC ADS initialization to work on ARM64 on dGFX (Lucas)

- Fix KMD and GuC race on accessing PMU busyness (Umesh)
- Use PM timestamp instead of RING TIMESTAMP for reference in PMU with GuC (Umesh)
- Report error on invalid reset notification from GuC (John)
- Avoid WARN splat by holding RPM wakelock during PXP unbind (Juston)
- Fixes to parallel submission implementation (Matt B.)
- Improve GuC loading status check/error reports (John)
- Tweak TTM LRU priority hint selection (Matt A.)
- Align the plane_vma to min_page_size of stolen mem (Ram)

- Introduce vma resources and implement async unbinding (Thomas)
- Use struct vma_resource instead of struct vma_snapshot (Thomas)
- Return some TTM accel move errors instead of trying memcpy move (Thomas)
- Fix a race between vma / object destruction and unbinding (Thomas)
- Remove short-term pins from execbuf (Maarten)
- Update to GuC version 69.0.3 (John, Michal Wa.)
- Improvements to GT reset paths in GuC backend (Matt B.)
- Use shrinker_release_pages instead of writeback in shmem object hooks (Matt A., Tvrtko)
- Use trylock instead of blocking lock when freeing GEM objects (Maarten)
- Allocate intel_engine_coredump_alloc with ALLOW_FAIL (Matt B.)
- Fixes to object unmapping and purging (Matt A)
- Check for wedged device in GuC backend (John)
- Avoid lockdep splat by locking dpt_obj around set_cache_level (Maarten)
- Allow dead vm to unbind vma's without lock (Maarten)
- s/engine->i915/i915/ for DG2 engine workarounds (Matt R)

- Use to_gt() helper for GGTT accesses (Michal Wi.)
- Selftest improvements (Matt B., Thomas, Ram)
- Coding style and compiler warning fixes (Matt B., Jasmine, Andi, Colin, Gustavo, Dan)

The following changes since commit 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc:

  Merge tag 'drm-misc-next-2022-01-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2022-02-01 19:02:41 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-02-17

for you to fetch changes up to 154cfae6158141b18d65abb0db679bb51a8294e7:

  drm/i915/dg2: Add Wa_22011100796 (2022-02-11 17:11:44 +0530)

----------------------------------------------------------------
UAPI Changes:

- Weak parallel submission support for execlists

  Minimal implementation of the parallel submission support for
  execlists backend that was previously only implemented for GuC.
  Support one sibling non-virtual engine.

Core Changes:

- Two backmerges of drm/drm-next for header file renames/changes and
  i915_regs reorganization

Driver Changes:

- Add new DG2 subplatform: DG2-G12 (Matt R)
- Add new DG2 workarounds (Matt R, Ram, Bruce)
- Handle pre-programmed WOPCM registers for DG2+ (Daniele)
- Update guc shim control programming on XeHP SDV+ (Daniele)
- Add RPL-S C0/D0 stepping information (Anusha)
- Improve GuC ADS initialization to work on ARM64 on dGFX (Lucas)

- Fix KMD and GuC race on accessing PMU busyness (Umesh)
- Use PM timestamp instead of RING TIMESTAMP for reference in PMU with GuC (Umesh)
- Report error on invalid reset notification from GuC (John)
- Avoid WARN splat by holding RPM wakelock during PXP unbind (Juston)
- Fixes to parallel submission implementation (Matt B.)
- Improve GuC loading status check/error reports (John)
- Tweak TTM LRU priority hint selection (Matt A.)
- Align the plane_vma to min_page_size of stolen mem (Ram)

- Introduce vma resources and implement async unbinding (Thomas)
- Use struct vma_resource instead of struct vma_snapshot (Thomas)
- Return some TTM accel move errors instead of trying memcpy move (Thomas)
- Fix a race between vma / object destruction and unbinding (Thomas)
- Remove short-term pins from execbuf (Maarten)
- Update to GuC version 69.0.3 (John, Michal Wa.)
- Improvements to GT reset paths in GuC backend (Matt B.)
- Use shrinker_release_pages instead of writeback in shmem object hooks (Matt A., Tvrtko)
- Use trylock instead of blocking lock when freeing GEM objects (Maarten)
- Allocate intel_engine_coredump_alloc with ALLOW_FAIL (Matt B.)
- Fixes to object unmapping and purging (Matt A)
- Check for wedged device in GuC backend (John)
- Avoid lockdep splat by locking dpt_obj around set_cache_level (Maarten)
- Allow dead vm to unbind vma's without lock (Maarten)
- s/engine->i915/i915/ for DG2 engine workarounds (Matt R)

- Use to_gt() helper for GGTT accesses (Michal Wi.)
- Selftest improvements (Matt B., Thomas, Ram)
- Coding style and compiler warning fixes (Matt B., Jasmine, Andi, Colin, Gustavo, Dan)

----------------------------------------------------------------
Andi Shyti (2):
      drm/i915: Remove unused i915->ggtt
      drm/i915: fix header file inclusion for might_alloc()

Anusha Srivatsa (1):
      drm/i915/rpl-s: Add stepping info

Bruce Chang (1):
      drm/i915/dg2: Add Wa_22011100796

Colin Ian King (1):
      i915: make array flex_regs static const

Dan Carpenter (1):
      drm/i915: delete shadow "ret" variable

Daniele Ceraolo Spurio (2):
      drm/i915/wopcm: Handle pre-programmed WOPCM registers
      drm/i915/guc: Update guc shim control programming on newer platforms

Gustavo A. R. Silva (1):
      drm/i915/guc: Use struct_size() helper in kmalloc()

Jasmine Newsome (1):
      drm/i915/gem: Use local pointer ttm for __i915_ttm_move

John Harrison (5):
      drm/i915/guc: Report error on invalid reset notification
      drm/i915/guc: Check for wedged before doing stuff
      drm/i915/guc: Temporarily bump the GuC load timeout
      drm/i915/guc: Update to GuC version 69.0.3
      drm/i915/guc: Improve GuC loading status check/error reports

Joonas Lahtinen (1):
      Merge drm/drm-next into drm-intel-gt-next

Juston Li (1):
      drm/i915/pxp: Hold RPM wakelock during PXP unbind

Lucas De Marchi (2):
      drm/i915/guc: Prepare for error propagation
      drm/i915/guc: Use a single pass to calculate regset

Maarten Lankhorst (8):
      drm/i915: Call i915_gem_evict_vm in vm_fault_gtt to prevent new ENOSPC errors, v2.
      drm/i915: Add locking to i915_gem_evict_vm(), v3.
      drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2.
      drm/i915: Add i915_vma_unbind_unlocked, and take obj lock for i915_vma_unbind, v2.
      drm/i915: Remove support for unlocked i915_vma unbind
      drm/i915: Remove short-term pins from execbuf, v6.
      drm/i915: Lock dpt_obj around set_cache_level, v2.
      drm/i915: Allow dead vm to unbind vma's without lock.

Matt Roper (4):
      drm/i915/dg2: Add Wa_18018781329
      drm/i915/dg2: Add Wa_14015227452
      drm/i915/dg2: s/engine->i915/i915/ for engine workarounds
      drm/i915: Introduce G12 subplatform of DG2

Matthew Auld (7):
      drm/i915: remove writeback hook
      drm/i915: clean up shrinker_release_pages
      drm/i915: don't call free_mmap_offset when purging
      drm/i915/ttm: only fault WILLNEED objects
      drm/i915/ttm: add unmap_virtual callback
      drm/i915/ttm: ensure we unmap when purging
      drm/i915/ttm: tweak priority hint selection

Matthew Brost (11):
      drm/i915/execlists: Weak parallel submission support for execlists
      drm/i915: Fix possible uninitialized variable in parallel extension
      drm/i915: Increment composite fence seqno
      drm/i915/selftests: Add a cancel request selftest that triggers a reset
      drm/i915/guc: Remove hacks for reset and schedule disable G2H being received out of order
      drm/i915: Allocate intel_engine_coredump_alloc with ALLOW_FAIL
      drm/i915/guc: Add work queue to trigger a GT reset
      drm/i915/guc: Flush G2H handler during a GT reset
      drm/i915: Lock timeline mutex directly in error path of eb_pin_timeline
      drm/i915/guc: Ensure multi-lrc fini breadcrumb math is correct
      drm/i915/selftests: Use less in contexts steal guc id test

Michał Winiarski (5):
      drm/i915/gt: Use to_gt() helper for GGTT accesses
      drm/i915: Use to_gt() helper for GGTT accesses
      drm/i915/gem: Use to_gt() helper for GGTT accesses
      drm/i915/display: Use to_gt() helper for GGTT accesses
      drm/i915/selftests: Use to_gt() helper for GGTT accesses

Ramalingam C (3):
      drm/i915/dg2: Add Wa_22011450934
      drm/i915: align the plane_vma to min_page_size of stolen mem
      drm/i915: More gt idling time with guc submission

Thomas Hellström (9):
      drm/i915: Initial introduction of vma resources
      drm/i915: Use the vma resource as argument for gtt binding / unbinding
      drm/i915: Don't pin the object pages during pending vma binds
      drm/i915: Use vma resources for async unbinding
      drm/i915: Asynchronous migration selftest
      drm/i915: Use struct vma_resource instead of struct vma_snapshot
      drm/i915: Fix vma resource freeing
      drm/i915: Fix a race between vma / object destruction and unbinding
      drm/i915/ttm: Return some errors instead of trying memcpy move

Tvrtko Ursulin (1):
      Merge drm/drm-next into drm-intel-gt-next

Umesh Nerlige Ramappa (2):
      drm/i915/pmu: Use PM timestamp instead of RING TIMESTAMP for reference
      drm/i915/pmu: Fix KMD and GuC race on accessing busyness

 Documentation/gpu/i915.rst                         |   1 +
 drivers/gpu/drm/i915/Makefile                      |   2 +-
 drivers/gpu/drm/i915/display/intel_dpt.c           |  33 +-
 drivers/gpu/drm/i915/display/intel_fb_pin.c        |   8 +-
 drivers/gpu/drm/i915/display/intel_fbc.c           |   2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c         |   2 +-
 drivers/gpu/drm/i915/display/intel_plane_initial.c |   7 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  11 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.h        |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     | 248 ++++++------
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  36 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  18 +
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  51 ++-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  10 -
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |  17 +-
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  30 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |   8 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |  15 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  16 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       |  27 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |  39 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |   4 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |   2 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  | 192 +++++++++-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  25 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_object.c   |   2 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  19 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  37 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   4 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   9 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  38 ++
 drivers/gpu/drm/i915/gt/intel_ggtt.c               | 133 ++++---
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   7 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |   7 +-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   2 +-
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   4 +
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  19 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  32 ++
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  22 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   4 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   9 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  39 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   2 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           |   2 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |  80 ++--
 drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h    |  23 ++
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h      |  82 ++++
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             | 126 ++++++-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  25 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         | 204 +++++++---
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          | 143 +++----
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  38 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  37 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |  31 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |   3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |   7 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 262 +++++++++----
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  31 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  43 ++-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   2 +-
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          |   2 +-
 drivers/gpu/drm/i915/gvt/aperture_gm.c             |   2 +-
 drivers/gpu/drm/i915/gvt/dmabuf.c                  |   2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   7 +-
 drivers/gpu/drm/i915/i915_driver.c                 |  10 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  32 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  37 +-
 drivers/gpu/drm/i915/i915_gem_evict.c              | 101 ++++-
 drivers/gpu/drm/i915/i915_gem_gtt.c                |  16 +-
 drivers/gpu/drm/i915/i915_gem_gtt.h                |   4 +
 drivers/gpu/drm/i915/i915_getparam.c               |   2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  89 ++---
 drivers/gpu/drm/i915/i915_module.c                 |   3 +
 drivers/gpu/drm/i915/i915_pci.c                    |   1 +
 drivers/gpu/drm/i915/i915_perf.c                   |   8 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  12 +-
 drivers/gpu/drm/i915/i915_request.c                |  12 +-
 drivers/gpu/drm/i915/i915_request.h                |   6 +-
 drivers/gpu/drm/i915/i915_vgpu.c                   |   2 +-
 drivers/gpu/drm/i915/i915_vma.c                    | 376 +++++++++++++-----
 drivers/gpu/drm/i915/i915_vma.h                    |  34 +-
 drivers/gpu/drm/i915/i915_vma_resource.c           | 418 +++++++++++++++++++++
 drivers/gpu/drm/i915/i915_vma_resource.h           | 234 ++++++++++++
 drivers/gpu/drm/i915/i915_vma_snapshot.c           | 134 -------
 drivers/gpu/drm/i915/i915_vma_snapshot.h           | 112 ------
 drivers/gpu/drm/i915/i915_vma_types.h              |  19 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   4 +-
 drivers/gpu/drm/i915/intel_step.c                  |  15 +
 drivers/gpu/drm/i915/intel_wopcm.c                 |  42 ++-
 drivers/gpu/drm/i915/selftests/i915_gem.c          |   8 +-
 drivers/gpu/drm/i915/selftests/i915_gem_evict.c    |  28 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      | 209 +++++++----
 drivers/gpu/drm/i915/selftests/i915_request.c      | 119 +++++-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |  30 +-
 drivers/gpu/drm/i915/selftests/igt_flush_test.c    |   2 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |  11 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c          |  21 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.h          |   3 +-
 101 files changed, 3149 insertions(+), 1359 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
 create mode 100644 drivers/gpu/drm/i915/i915_vma_resource.c
 create mode 100644 drivers/gpu/drm/i915/i915_vma_resource.h
 delete mode 100644 drivers/gpu/drm/i915/i915_vma_snapshot.c
 delete mode 100644 drivers/gpu/drm/i915/i915_vma_snapshot.h


More information about the Intel-gfx mailing list