On Thu, 17 Feb 2022 at 20:26, Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> 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