mbox series

[PULL] drm-intel-gt-next

Message ID Yg4i2aCZvvee5Eai@jlahtine-mobl.ger.corp.intel.com (mailing list archive)
State New, archived
Headers show
Series [PULL] drm-intel-gt-next | expand

Pull-request

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

Message

Joonas Lahtinen Feb. 17, 2022, 10:26 a.m. UTC
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

Comments

Dave Airlie Feb. 20, 2022, 11:30 p.m. UTC | #1
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
Jani Nikula Feb. 21, 2022, 9:21 a.m. UTC | #2
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
Lucas De Marchi Feb. 22, 2022, 7:44 p.m. UTC | #3
On Mon, Feb 21, 2022 at 11:21:35AM +0200, Jani Nikula wrote:
>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.

yeah, with all header refactors landing in drm-intel-next there were
quite a few conflict lately. Just taking fixups/drm-intel-gt-next.patch
doesn't fix it though as we'd need to follow the merge order drm-tip is
doing, i.e. first get a pull request for drm-intel-next in, and then
drm-intel-gt-next. Or the octopus merge

For this merge only I believe the fixup is:

	git show 064030837c5b:fixups/drm-intel-gt-next.patch | patch -p1

with 064030837c5b being the commit in drm-rerere. Cc'ing Matt Roper

Lucas De Marchi

>
>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
Rodrigo Vivi Feb. 23, 2022, 8:35 p.m. UTC | #4
On Tue, 2022-02-22 at 11:44 -0800, Lucas De Marchi wrote:
> On Mon, Feb 21, 2022 at 11:21:35AM +0200, Jani Nikula wrote:
> > 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.

With ack from Dave on #dri-devel, I've applied this pull request to
drm-intel-next.

Then I used this big fixup on the merge resolution.

Now I'm going to prepare a drm-intel-next pull request towards drm-
next.

Then for the next rounds we check if we are doing cross merges,
or the other way around and get drm-intel-next into drm-intel-gt-next

Thanks,
Rodrigo.


> yeah, with all header refactors landing in drm-intel-next there were
> quite a few conflict lately. Just taking fixups/drm-intel-gt-
> next.patch
> doesn't fix it though as we'd need to follow the merge order drm-tip
> is
> doing, i.e. first get a pull request for drm-intel-next in, and then
> drm-intel-gt-next. Or the octopus merge
> 
> For this merge only I believe the fixup is:
> 
>         git show 064030837c5b:fixups/drm-intel-gt-next.patch | patch
> -p1
> 
> with 064030837c5b being the commit in drm-rerere. Cc'ing Matt Roper
> 
> Lucas De Marchi
> 
> > 
> > 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