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

Jani Nikula jani.nikula at linux.intel.com
Mon Feb 21 09:21:35 UTC 2022


On Mon, 21 Feb 2022, Dave Airlie <airlied at gmail.com> wrote:
> On Thu, 17 Feb 2022 at 20:26, Joonas Lahtinen
> <joonas.lahtinen at 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


More information about the Intel-gfx mailing list