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

Jani Nikula
2022-02-21T09:21:44Z

On Mon, 21 Feb 2022, Dave Airlie <airlied@gmail.com> wrote:
> 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

There's apparently a silent conflict between changes in drm-intel-next
and drm-intel-gt-next. There's a fixup patch in drm-rerere:
fixups/drm-intel-gt-next.patch.

We opted to sync the branches via drm-next pulls and backmerges, but I'm
afraid that means you'd have to use the fixups when merging. I guess we
failed to communicate that. The alternative would've been cross-merges
within drm-intel.

BR,
Jani.

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

--
Jani Nikula, Intel Open Source Graphics Center