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

Dave Airlie
2022-02-20T23:31:10Z

On Thu, 17 Feb 2022 at 20:26, Joonas Lahtinen
<joonas.lahtinen@linux.intel.com> wrote:
>
> Hi Dave & Daniel,
>
> Here is the first drm-intel-gt-next feature PR towards v5.18.

Am I missing some previous drm-intel pull?

/home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/gt/intel_workarounds.c:
In function ‘rcs_engine_wa_init’:
/home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/gt/intel_workarounds.c:2051:40:
error: ‘XEHP_DIS_BBL_SYSPIPE’ undeclared (first use in this function)
2051 | wa_masked_en(wal, GEN9_ROW_CHICKEN4, XEHP_DIS_BBL_SYSPIPE);
| ^~~~~~~~~~~~~~~~~~~~
/home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/gt/intel_workarounds.c:2051:40:
note: each undeclared identifier is reported only once for each
function it appears in

Dave.
>
> 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