All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL] drm-intel-gt-next
@ 2021-10-08  9:27 ` Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-10-08  9:27 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Sean Paul,
	Maarten Lankhorst, Maxime Ripard, dri-devel, intel-gfx,
	dim-tools

Hi Dave & Daniel,

Here goes the first PR towards 5.16.

As for the big things, this adds encrypted PXP (Protected Xe Path)
support for Gen12 integrated. Take a look at the "drm/i915/pxp: add
PXP documentation" for further details and the Mesa changes for how
the uAPI will look like.

Then adds DG1 PCI IDs (GuC is enabled by default) still behind
force_probe, but not anymore behind the FAKE_LMEM compile time
protection. There is of course immensive amount of rework and new
code that lead to this.

Suspend timeout is increased by factor of 2.5 to account for GuC
submission added overhead. Ultimately this should lead to simpler
kernel scheduler code that will converge towards drm/sched.

Then there are the many of the other changes that trade previously made
code (micro-)optimizations for code simplicity, so some performance
regressions are expected.

Removes ADL-S force_probe protection. Enables transparent hugepages when
IOMMU is enabled (and then only), to offset the perf hit caused by
IOMMU. That is greater than some of the perf hit from THP itself. Keeps
adding support for Xe HP/Xe HP SDV.

Backmerges drm-next at 5.15-rc1 and merges the tip/locking/wwmutex branch.
Also includes patches for the MEI subsystem that go together with the PXP
changes.

Regards, Joonas

***

drm-intel-gt-next-2021-10-08:

UAPI Changes:

- Add uAPI for using PXP protected objects

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064

- Add PCI IDs and LMEM discovery/placement uAPI for DG1

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11584

- Disable engine bonding on Gen12+ except TGL, RKL and ADL-S

Cross-subsystem Changes:

- Merges 'tip/locking/wwmutex' branch (core kernel tip)
- "mei: pxp: export pavp client to me client bus"

Core Changes:

- Update ttm_move_memcpy for async use (Thomas)

Driver Changes:

- Add PXP (Protected Xe Path) support for Gen12 integrated (Daniele,
  Sean, Anshuman)
  See "drm/i915/pxp: add PXP documentation" for details!
- Enable GuC submission by default on DG1 (Matt B)
- Remove force_probe protection for ADL-S (Raviteja)
- Add base support for XeHP/XeHP SDV (Matt R, Stuart, Lucas)
- Handle DRI_PRIME=1 on Intel igfx + Intel dgfx hybrid graphics setup (Tvrtko)
- Use Transparent Hugepages when IOMMU is enabled (Tvrtko, Chris)
- Implement LMEM backup and restore for suspend / resume (Thomas)
- Report INSTDONE_GEOM values in error state for DG2 (Matt R)
- Add DG2-specific shadow register table (Matt R)
- Update Gen11/Gen12/XeHP shadow register tables (Matt R)
- Maintain backward-compatible nested batch behavior on TGL+ (Matt R)
- Add new LRI reg offsets for DG2 (Akeem)
- Initialize unused MOCS entries to device specific values (Ayaz)
- Track and use the correct UC MOCS index on Gen12 (Ayaz)
- Add separate MOCS table for Gen12 devices other than TGL/RKL (Ayaz)
- Simplify the locking and eliminate some RCU usage (Daniel)
- Add some flushing for the 64K GTT path (Matt A)
- Mark GPU wedging on driver unregister unrecoverable (Janusz)

- Major rework in the GuC codebase, simplify locking and add docs (Matt B)
- Add DG1 GuC/HuC firmwares (Daniele, Matt B)
- Remember to call i915_sw_fence_fini on guc_state.blocked (Matt A)
- Use "gt" forcewake domain name for error messages instead of "blitter" (Matt R)
- Drop now duplicate LMEM uAPI RFC kerneldoc section (Daniel)
- Fix early tracepoints for requests (Matt A)
- Use locked access to ctx->engines in set_priority (Daniel)
- Convert gen6/gen7/gen8 read operations to fwtable (Matt R)
- Drop gen11/gen12 specific mmio write handlers (Matt R)
- Drop gen11 specific mmio read handlers (Matt R)
- Use designated initializers for init/exit table (Kees)
- Fix syncmap memory leak (Matt B)
- Add pretty printing for buddy allocator state debug (Matt A)
- Fix potential error pointer dereference in pinned_context() (Dan)
- Remove IS_ACTIVE macro (Lucas)
- Static code checker fixes (Nathan)
- Clean up disabled warnings (Nathan)
- Increase timeout in i915_gem_contexts selftests 5x for GuC submission (Matt B)
- Ensure wa_init_finish() is called for ctx workaround list (Matt R)
- Initialize L3CC table in mocs init (Sreedhar, Ayaz, Ram)
- Get PM ref before accessing HW register (Vinay)
- Move __i915_gem_free_object to ttm_bo_destroy (Maarten)
- Deduplicate frequency dump on debugfs (Lucas)
- Make wa list per-gt (Venkata)
- Do not define dummy vma in stack (Venkata)
- Take pinning into account in __i915_gem_object_is_lmem (Matt B, Thomas)
- Do not report currently active engine when describing objects (Tvrtko)
- Fix pdfdocs build error by removing nested grid from GuC docs (Akira)
- Remove false warning from the rps worker (Tejas)
- Flush buffer pools on driver remove (Janusz)
- Fix runtime pm handling in i915_gem_shrink (Maarten)
- Rework TTM object initialization slightly (Thomas)
- Use fixed offset for PTEs location (Michal Wa)
- Verify result from CTB (de)register action and improve error messages (Michal Wa)
- Fix bug in user proto-context creation that leaked contexts (Matt B)

- Re-use Gen11 forcewake read functions on Gen12 (Matt R)
- Make shadow tables range-based (Matt R)
- Ditch the i915_gem_ww_ctx loop member (Thomas, Maarten)
- Use NULL instead of 0 where appropriate (Ville)
- Rename pci/debugfs functions to respect file prefix (Jani, Lucas)
- Drop guc_communication_enabled (Daniele)
- Selftest fixes (Thomas, Daniel, Matt A, Maarten)
- Clean up inconsistent indenting (Colin)
- Use direction definition DMA_BIDIRECTIONAL instead of
  PCI_DMA_BIDIRECTIONAL (Cai)
- Add "intel_" as prefix in set_mocs_index() (Ayaz)

The following changes since commit 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f:

  Linux 5.15-rc1 (2021-09-12 16:28:37 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-10-08

for you to fetch changes up to 1a839e016e4964b5c8384e5d82e5e5ac02a23f52:

  drm/i915: remove IS_ACTIVE (2021-10-07 11:04:05 -0700)

----------------------------------------------------------------
UAPI Changes:

- Add uAPI for using PXP protected objects

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064

- Add PCI IDs and LMEM discovery/placement uAPI for DG1

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11584

- Disable engine bonding on Gen12+ except TGL, RKL and ADL-S

Cross-subsystem Changes:

- Merges 'tip/locking/wwmutex' branch (core kernel tip)
- "mei: pxp: export pavp client to me client bus"

Core Changes:

- Update ttm_move_memcpy for async use (Thomas)

Driver Changes:

- Enable GuC submission by default on DG1 (Matt B)
- Add PXP (Protected Xe Path) support for Gen12 integrated (Daniele,
  Sean, Anshuman)
  See "drm/i915/pxp: add PXP documentation" for details!
- Remove force_probe protection for ADL-S (Raviteja)
- Add base support for XeHP/XeHP SDV (Matt R, Stuart, Lucas)
- Handle DRI_PRIME=1 on Intel igfx + Intel dgfx hybrid graphics setup (Tvrtko)
- Use Transparent Hugepages when IOMMU is enabled (Tvrtko, Chris)
- Implement LMEM backup and restore for suspend / resume (Thomas)
- Report INSTDONE_GEOM values in error state for DG2 (Matt R)
- Add DG2-specific shadow register table (Matt R)
- Update Gen11/Gen12/XeHP shadow register tables (Matt R)
- Maintain backward-compatible nested batch behavior on TGL+ (Matt R)
- Add new LRI reg offsets for DG2 (Akeem)
- Initialize unused MOCS entries to device specific values (Ayaz)
- Track and use the correct UC MOCS index on Gen12 (Ayaz)
- Add separate MOCS table for Gen12 devices other than TGL/RKL (Ayaz)
- Simplify the locking and eliminate some RCU usage (Daniel)
- Add some flushing for the 64K GTT path (Matt A)
- Mark GPU wedging on driver unregister unrecoverable (Janusz)

- Major rework in the GuC codebase, simplify locking and add docs (Matt B)
- Add DG1 GuC/HuC firmwares (Daniele, Matt B)
- Remember to call i915_sw_fence_fini on guc_state.blocked (Matt A)
- Use "gt" forcewake domain name for error messages instead of "blitter" (Matt R)
- Drop now duplicate LMEM uAPI RFC kerneldoc section (Daniel)
- Fix early tracepoints for requests (Matt A)
- Use locked access to ctx->engines in set_priority (Daniel)
- Convert gen6/gen7/gen8 read operations to fwtable (Matt R)
- Drop gen11/gen12 specific mmio write handlers (Matt R)
- Drop gen11 specific mmio read handlers (Matt R)
- Use designated initializers for init/exit table (Kees)
- Fix syncmap memory leak (Matt B)
- Add pretty printing for buddy allocator state debug (Matt A)
- Fix potential error pointer dereference in pinned_context() (Dan)
- Remove IS_ACTIVE macro (Lucas)
- Static code checker fixes (Nathan)
- Clean up disabled warnings (Nathan)
- Increase timeout in i915_gem_contexts selftests 5x for GuC submission (Matt B)
- Ensure wa_init_finish() is called for ctx workaround list (Matt R)
- Initialize L3CC table in mocs init (Sreedhar, Ayaz, Ram)
- Get PM ref before accessing HW register (Vinay)
- Move __i915_gem_free_object to ttm_bo_destroy (Maarten)
- Deduplicate frequency dump on debugfs (Lucas)
- Make wa list per-gt (Venkata)
- Do not define dummy vma in stack (Venkata)
- Take pinning into account in __i915_gem_object_is_lmem (Matt B, Thomas)
- Do not report currently active engine when describing objects (Tvrtko)
- Fix pdfdocs build error by removing nested grid from GuC docs (Akira)
- Remove false warning from the rps worker (Tejas)
- Flush buffer pools on driver remove (Janusz)
- Fix runtime pm handling in i915_gem_shrink (Maarten)
- Rework TTM object initialization slightly (Thomas)
- Use fixed offset for PTEs location (Michal Wa)
- Verify result from CTB (de)register action and improve error messages (Michal Wa)
- Fix bug in user proto-context creation that leaked contexts (Matt B)

- Re-use Gen11 forcewake read functions on Gen12 (Matt R)
- Make shadow tables range-based (Matt R)
- Ditch the i915_gem_ww_ctx loop member (Thomas, Maarten)
- Use NULL instead of 0 where appropriate (Ville)
- Rename pci/debugfs functions to respect file prefix (Jani, Lucas)
- Drop guc_communication_enabled (Daniele)
- Selftest fixes (Thomas, Daniel, Matt A, Maarten)
- Clean up inconsistent indenting (Colin)
- Use direction definition DMA_BIDIRECTIONAL instead of
  PCI_DMA_BIDIRECTIONAL (Cai)
- Add "intel_" as prefix in set_mocs_index() (Ayaz)

----------------------------------------------------------------
Akeem G Abodunrin (1):
      drm/i915/dg2: Add new LRI reg offsets

Akira Yokosawa (1):
      drm/i915/guc, docs: Fix pdfdocs build error by removing nested grid

Anshuman Gupta (2):
      drm/i915/pxp: Add plane decryption support
      drm/i915/pxp: black pixels on pxp disabled

Ayaz A Siddiqui (6):
      drm/i915/gt: Add support of mocs propagation
      drm/i915/gt: Set CMD_CCTL to UC for Gen12 Onward
      drm/i915/gt: Set BLIT_CCTL reg to un-cached
      drm/i915/gt: Initialize unused MOCS entries with device specific values
      drm/i915/gt: Add separate MOCS table for Gen12 devices other than TGL/RKL
      drm/i915/gt: Add "intel_" as prefix in set_mocs_index()

Cai Huoqing (1):
      drm/i915: Use direction definition DMA_BIDIRECTIONAL instead of PCI_DMA_BIDIRECTIONAL

Colin Ian King (1):
      drm/i915: clean up inconsistent indenting

Dan Carpenter (1):
      drm/i915/gt: Potential error pointer dereference in pinned_context()

Daniel Vetter (14):
      drm/doc/rfc: drop lmem uapi section
      drm/i915: Use locked access to ctx->engines in set_priority
      drm/i915: Actually delete gpu reloc selftests
      drm/i915: Release i915_gem_context from a worker
      drm/i915: Release ctx->syncobj on final put, not on ctx close
      drm/i915: Keep gem ctx->vm alive until the final put
      drm/i915: Drop code to handle set-vm races from execbuf
      drm/i915: Rename i915_gem_context_get_vm_rcu to i915_gem_context_get_eb_vm
      drm/i915: Use i915_gem_context_get_eb_vm in ctx_getparam
      drm/i915: Add i915_gem_context_is_full_ppgtt
      drm/i915: Use i915_gem_context_get_eb_vm in intel_context_set_gem
      drm/i915: Drop __rcu from gem_context->vm
      drm/i915: use xa_lock/unlock for fpriv->vm_xa lookups
      drm/i915: Stop rcu support for i915_address_space

Daniele Ceraolo Spurio (12):
      drm/i915/guc: drop guc_communication_enabled
      drm/i915/guc: put all guc objects in lmem when available
      drm/i915/guc: Add DG1 GuC / HuC firmware defs
      drm/i915/pxp: Define PXP component interface
      drm/i915/pxp: define PXP device flag and kconfig
      drm/i915/pxp: allocate a vcs context for pxp usage
      drm/i915/pxp: set KCR reg init
      drm/i915/pxp: interfaces for using protected objects
      drm/i915/pxp: start the arb session on demand
      drm/i915/pxp: add pxp debugfs
      drm/i915/pxp: add PXP documentation
      drm/i915/pxp: enable PXP for integrated Gen12

Huang, Sean Z (5):
      drm/i915/pxp: Implement funcs to create the TEE channel
      drm/i915/pxp: Create the arbitrary session after boot
      drm/i915/pxp: Implement arb session teardown
      drm/i915/pxp: Implement PXP irq handler
      drm/i915/pxp: Enable PXP power management

Jani Nikula (1):
      drm/i915/pci: rename functions to have i915_pci prefix

Janusz Krzysztofik (2):
      drm/i915: Mark GPU wedging on driver unregister unrecoverable
      drm/i915: Flush buffer pools on driver remove

Joonas Lahtinen (2):
      Merge drm/drm-next into drm-intel-gt-next
      Merge remote-tracking branch 'tip/locking/wwmutex' into drm-intel-gt-next

Kees Cook (1):
      drm/i915: Use designated initializers for init/exit table

Lucas De Marchi (8):
      drm/i915/xehpsdv: factor out function to read RP_STATE_CAP
      drm/i915/dg1: remove __maybe_unused leftover
      drm/i915/xehpsdv: Define MOCS table for XeHP SDV
      drm/i915: rename debugfs_gt files
      drm/i915: rename debugfs_engines files
      drm/i915: rename debugfs_gt_pm files
      drm/i915: deduplicate frequency dump on debugfs
      drm/i915: remove IS_ACTIVE

Maarten Lankhorst (5):
      drm/i915: Add pci ids and uapi for DG1
      drm/i915: Add mmap lock around vma_lookup() in the mman selftest.
      drm/i915: Move __i915_gem_free_object to ttm_bo_destroy
      kernel/locking: Add context to ww_mutex_trylock()
      drm/i915: Fix runtime pm handling in i915_gem_shrink

Matt Roper (21):
      drm/i915: correct name of GT forcewake domain in error messages
      drm/i915: Re-use gen11 forcewake read functions on gen12
      drm/i915: Make shadow tables range-based
      drm/i915/gen11: Update shadowed register table
      drm/i915/gen12: Update shadowed register table
      drm/i915/xehp: Xe_HP shadowed registers are a strict superset of gen12
      drm/i915/xehp: Loop over all gslices for INSTDONE processing
      drm/i915/dg2: Report INSTDONE_GEOM values in error state
      drm/i915/xehpsdv: Read correct RP_STATE_CAP register
      drm/i915/dg2: Maintain backward-compatible nested batch behavior
      drm/i915: Ensure wa_init_finish() is called for ctx workaround list
      drm/i915/dg2: Define MOCS table for DG2
      drm/i915/xehp: Check new fuse bits for SFC availability
      drm/i915: Check SFC fusing before recording/dumping SFC_DONE
      drm/i915/uncore: Convert gen6/gen7 read operations to fwtable
      drm/i915/uncore: Associate shadow table with uncore
      drm/i915/uncore: Replace gen8 write functions with general fwtable
      drm/i915/uncore: Drop gen11/gen12 mmio write handlers
      drm/i915/uncore: Drop gen11 mmio read handlers
      drm/i915/dg2: Add DG2-specific shadow register table
      drm/i915/uncore: fwtable read handlers are now used on all forcewake platforms

Matthew Auld (7):
      drm/i915/buddy: add some pretty printing
      drm/i915/debugfs: hook up ttm_resource_manager_debug
      drm/i915/gtt: add some flushing for the 64K GTT path
      drm/i915/selftests: fixup igt_shrink_thp
      drm/i915/request: fix early tracepoints
      drm/i915/selftests: exercise shmem_writeback with THP
      drm/i915: remember to call i915_sw_fence_fini

Matthew Brost (29):
      drm/i915: Disable bonding on gen12+ platforms
      drm/i915: Fix syncmap memory leak
      drm/i915/selftests: Increase timeout in i915_gem_contexts selftests
      drm/i915/guc: Fix blocked context accounting
      drm/i915/guc: Fix outstanding G2H accounting
      drm/i915/guc: Unwind context requests in reverse order
      drm/i915/guc: Don't drop ce->guc_active.lock when unwinding context
      drm/i915/guc: Process all G2H message at once in work queue
      drm/i915/guc: Workaround reset G2H is received after schedule done G2H
      Revert "drm/i915/gt: Propagate change in error status to children on unhold"
      drm/i915/guc: Kick tasklet after queuing a request
      drm/i915/guc: Don't enable scheduling on a banned context, guc_id invalid, not registered
      drm/i915/guc: Copy whole golden context, set engine state size of subset
      drm/i915/selftests: Add initial GuC selftest for scrubbing lost G2H
      drm/i915/guc: Take context ref when cancelling request
      drm/i915/guc: Don't touch guc_state.sched_state without a lock
      drm/i915/guc: Reset LRC descriptor if register returns -ENODEV
      drm/i915/guc: Release submit fence from an irq_work
      drm/i915/guc: Move guc_blocked fence to struct guc_state
      drm/i915/guc: Rework and simplify locking
      drm/i915/guc: Proper xarray usage for contexts_lookup
      drm/i915/guc: Drop pin count check trick between sched_disable and re-pin
      drm/i915/guc: Move GuC priority fields in context under guc_active
      drm/i915/guc: Move fields protected by guc->contexts_lock into sub structure
      drm/i915/guc: Drop guc_active move everything into guc_state
      drm/i915/guc: Add GuC kernel doc
      drm/i915/guc: Enable GuC submission by default on DG1
      drm/i915: Take pinning into account in __i915_gem_object_is_lmem
      drm/i915: Fix bug in user proto-context creation that leaked contexts

Michal Wajdeczko (5):
      drm/i915: Use fixed offset for PTEs location
      drm/i915/guc: Verify result from CTB (de)register action
      drm/i915/guc: Print error name on CTB (de)registration failure
      drm/i915/guc: Print error name on CTB send failure
      drm/i915/guc: Move and improve error message for missed CTB reply

Nathan Chancellor (5):
      drm/i915/selftest: Fix use of err in igt_reset_{fail, nop}_engine()
      drm/i915/selftests: Do not use import_obj uninitialized
      drm/i915/selftests: Always initialize err in igt_dmabuf_import_same_driver_lmem()
      drm/i915: Enable -Wsometimes-uninitialized
      drm/i915: Clean up disabled warnings

Sreedhar Telukuntla (1):
      drm/i915/gt: Initialize L3CC table in mocs init

Stuart Summers (1):
      drm/i915/xehpsdv: Add compute DSS type

Tejas Upadhyay (1):
      drm/i915: Remove warning from the rps worker

Thomas Hellström (13):
      drm/i915: Ditch the i915_gem_ww_ctx loop member
      drm/i915/ttm: Reorganize the ttm move code somewhat
      drm/ttm, drm/i915: Update ttm_move_memcpy for async use
      drm/i915/gem: Fix the mman selftest
      drm/i915/gem: Fix a lockdep warning the __i915_gem_is_lmem() function
      drm/i915/ttm: Implement a function to copy the contents of two TTM-based objects
      drm/i915/gem: Implement a function to process all gem objects of a region
      drm/i915/gt: Increase suspend timeout
      drm/i915 Implement LMEM backup and restore for suspend / resume
      drm/i915/gt: Register the migrate contexts with their engines
      drm/i915: Don't back up pinned LMEM context images and rings during suspend
      drm/i915: Reduce the number of objects subject to memcpy recover
      drm/i915/ttm: Rework object initialization slightly

Tvrtko Ursulin (3):
      drm/i915: Use Transparent Hugepages when IOMMU is enabled
      drm/i915/debugfs: Do not report currently active engine when describing objects
      drm/i915: Handle Intel igfx + Intel dgfx hybrid graphics setup

Venkata Sandeep Dhanalakota (2):
      drm/i915: Make wa list per-gt
      drm/i915: Do not define vma on stack

Ville Syrjälä (1):
      drm/i915: s/0/NULL/

Vinay Belgaumkar (1):
      drm/i915: Get PM ref before accessing HW register

Vitaly Lubart (1):
      mei: pxp: export pavp client to me client bus

ravitejax (1):
      drm/i915/adl_s: Remove require_force_probe protection

 Documentation/gpu/i915.rst                         |  10 +
 drivers/gpu/drm/drm_modeset_lock.c                 |   2 +-
 drivers/gpu/drm/i915/Kconfig                       |  11 +
 drivers/gpu/drm/i915/Makefile                      |  28 +-
 drivers/gpu/drm/i915/display/intel_display.c       |  34 +
 drivers/gpu/drm/i915/display/intel_display_types.h |   6 +
 drivers/gpu/drm/i915/display/skl_universal_plane.c |  49 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        | 298 +++----
 drivers/gpu/drm/i915/gem/i915_gem_context.h        |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |  42 +-
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |  75 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  26 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  33 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   4 +
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  44 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  28 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  30 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |  91 ++
 drivers/gpu/drm/i915/gem/i915_gem_pm.h             |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |  70 ++
 drivers/gpu/drm/i915/gem/i915_gem_region.h         |  37 +
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |   7 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            | 195 +++--
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |  14 +
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c         | 206 +++++
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h         |  26 +
 drivers/gpu/drm/i915/gem/i915_gemfs.c              |  22 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |  41 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  36 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |   7 +-
 .../drm/i915/gem/selftests/i915_gem_execbuffer.c   | 190 -----
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  28 +-
 drivers/gpu/drm/i915/gem/selftests/mock_context.c  |   5 +-
 drivers/gpu/drm/i915/gt/debugfs_engines.h          |  14 -
 drivers/gpu/drm/i915/gt/debugfs_gt_pm.h            |  14 -
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |   2 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   7 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.h               |   4 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |  20 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |  88 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   6 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  84 +-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |   2 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |  23 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.h          |   2 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  24 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  10 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  23 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |  22 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  22 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   2 -
 .../i915/gt/{debugfs_gt.c => intel_gt_debugfs.c}   |  18 +-
 .../i915/gt/{debugfs_gt.h => intel_gt_debugfs.h}   |  14 +-
 ...ebugfs_engines.c => intel_gt_engines_debugfs.c} |  10 +-
 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h |  14 +
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   7 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  22 +-
 .../gt/{debugfs_gt_pm.c => intel_gt_pm_debugfs.c}  | 153 ++--
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h      |  16 +
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |  12 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   9 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  11 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  88 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |   2 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               | 176 +++-
 drivers/gpu/drm/i915/gt/intel_mocs.h               |   1 +
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  13 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   4 +-
 drivers/gpu/drm/i915/gt/intel_ring.c               |   3 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   5 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  29 +-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   1 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  65 +-
 drivers/gpu/drm/i915/gt/intel_sseu.h               |  11 +-
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |  10 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 262 ++++--
 drivers/gpu/drm/i915/gt/intel_workarounds.h        |   2 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |   2 +
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   4 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  16 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  10 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |   2 +-
 .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h |  10 +-
 .../i915/gt/uc/abi/guc_communication_mmio_abi.h    |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  75 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  26 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |  36 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c     |  18 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  13 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c |   8 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 916 +++++++++++++--------
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |  14 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.c     |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  13 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c      |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  93 ++-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   9 +
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          | 127 +++
 drivers/gpu/drm/i915/gvt/gtt.c                     |  17 +-
 drivers/gpu/drm/i915/gvt/kvmgt.c                   |   4 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   2 +-
 drivers/gpu/drm/i915/i915_buddy.c                  |  45 +
 drivers/gpu/drm/i915/i915_buddy.h                  |   8 +
 drivers/gpu/drm/i915/i915_config.c                 |   2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                | 242 +-----
 drivers/gpu/drm/i915/i915_drv.c                    |   8 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  13 +-
 drivers/gpu/drm/i915/i915_gem.c                    |   2 -
 drivers/gpu/drm/i915/i915_gem_gtt.c                |   4 +-
 drivers/gpu/drm/i915/i915_gem_ww.h                 |  25 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  42 +-
 drivers/gpu/drm/i915/i915_module.c                 |   4 +-
 drivers/gpu/drm/i915/i915_pci.c                    |  10 +-
 drivers/gpu/drm/i915/i915_pci.h                    |  12 +-
 drivers/gpu/drm/i915/i915_query.c                  |   3 -
 drivers/gpu/drm/i915/i915_reg.h                    |  84 +-
 drivers/gpu/drm/i915/i915_request.c                |  25 +-
 drivers/gpu/drm/i915/i915_request.h                |  26 +-
 drivers/gpu/drm/i915/i915_trace.h                  |  14 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  20 +-
 drivers/gpu/drm/i915/i915_utils.h                  |  13 -
 drivers/gpu/drm/i915/intel_device_info.h           |   1 +
 drivers/gpu/drm/i915/intel_memory_region.c         |  12 +
 drivers/gpu/drm/i915/intel_memory_region.h         |   4 +
 drivers/gpu/drm/i915/intel_uncore.c                | 375 ++++-----
 drivers/gpu/drm/i915/intel_uncore.h                |  13 +
 drivers/gpu/drm/i915/pxp/intel_pxp.c               | 299 +++++++
 drivers/gpu/drm/i915/pxp/intel_pxp.h               |  64 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c           | 141 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h           |  15 +
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c       |  78 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h       |  21 +
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c           | 101 +++
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h           |  32 +
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c            |  46 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h            |  24 +
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c       | 175 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_session.h       |  15 +
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c           | 172 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h           |  17 +
 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h |  36 +
 drivers/gpu/drm/i915/pxp/intel_pxp_types.h         |  83 ++
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   8 +-
 .../gpu/drm/i915/selftests/i915_live_selftests.h   |   1 +
 drivers/gpu/drm/i915/selftests/i915_vma.c          |   4 +-
 .../drm/i915/selftests/intel_scheduler_helpers.c   |  12 +
 .../drm/i915/selftests/intel_scheduler_helpers.h   |   2 +
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |  34 +-
 drivers/gpu/drm/ttm/ttm_bo_util.c                  |  19 +-
 drivers/misc/mei/Kconfig                           |   2 +
 drivers/misc/mei/Makefile                          |   1 +
 drivers/misc/mei/pxp/Kconfig                       |  13 +
 drivers/misc/mei/pxp/Makefile                      |   7 +
 drivers/misc/mei/pxp/mei_pxp.c                     | 229 ++++++
 drivers/misc/mei/pxp/mei_pxp.h                     |  18 +
 drivers/regulator/core.c                           |   2 +-
 include/drm/i915_component.h                       |   1 +
 include/drm/i915_pxp_tee_interface.h               |  42 +
 include/drm/ttm/ttm_bo_driver.h                    |   2 +-
 include/linux/dma-resv.h                           |   2 +-
 include/linux/ww_mutex.h                           |  15 +-
 include/uapi/drm/i915_drm.h                        |  97 +++
 kernel/locking/mutex.c                             |  41 +
 kernel/locking/test-ww_mutex.c                     |  86 +-
 kernel/locking/ww_rt_mutex.c                       |  25 +
 lib/locking-selftest.c                             |   2 +-
 168 files changed, 5515 insertions(+), 1967 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
 delete mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c
 delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_engines.h
 delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt_pm.h
 rename drivers/gpu/drm/i915/gt/{debugfs_gt.c => intel_gt_debugfs.c} (67%)
 rename drivers/gpu/drm/i915/gt/{debugfs_gt.h => intel_gt_debugfs.h} (71%)
 rename drivers/gpu/drm/i915/gt/{debugfs_engines.c => intel_gt_engines_debugfs.c} (70%)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
 rename drivers/gpu/drm/i915/gt/{debugfs_gt_pm.c => intel_gt_pm_debugfs.c} (83%)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
 create mode 100644 drivers/misc/mei/pxp/Kconfig
 create mode 100644 drivers/misc/mei/pxp/Makefile
 create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
 create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
 create mode 100644 include/drm/i915_pxp_tee_interface.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [Intel-gfx] [PULL] drm-intel-gt-next
@ 2021-10-08  9:27 ` Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-10-08  9:27 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Sean Paul,
	Maarten Lankhorst, Maxime Ripard, dri-devel, intel-gfx,
	dim-tools

Hi Dave & Daniel,

Here goes the first PR towards 5.16.

As for the big things, this adds encrypted PXP (Protected Xe Path)
support for Gen12 integrated. Take a look at the "drm/i915/pxp: add
PXP documentation" for further details and the Mesa changes for how
the uAPI will look like.

Then adds DG1 PCI IDs (GuC is enabled by default) still behind
force_probe, but not anymore behind the FAKE_LMEM compile time
protection. There is of course immensive amount of rework and new
code that lead to this.

Suspend timeout is increased by factor of 2.5 to account for GuC
submission added overhead. Ultimately this should lead to simpler
kernel scheduler code that will converge towards drm/sched.

Then there are the many of the other changes that trade previously made
code (micro-)optimizations for code simplicity, so some performance
regressions are expected.

Removes ADL-S force_probe protection. Enables transparent hugepages when
IOMMU is enabled (and then only), to offset the perf hit caused by
IOMMU. That is greater than some of the perf hit from THP itself. Keeps
adding support for Xe HP/Xe HP SDV.

Backmerges drm-next at 5.15-rc1 and merges the tip/locking/wwmutex branch.
Also includes patches for the MEI subsystem that go together with the PXP
changes.

Regards, Joonas

***

drm-intel-gt-next-2021-10-08:

UAPI Changes:

- Add uAPI for using PXP protected objects

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064

- Add PCI IDs and LMEM discovery/placement uAPI for DG1

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11584

- Disable engine bonding on Gen12+ except TGL, RKL and ADL-S

Cross-subsystem Changes:

- Merges 'tip/locking/wwmutex' branch (core kernel tip)
- "mei: pxp: export pavp client to me client bus"

Core Changes:

- Update ttm_move_memcpy for async use (Thomas)

Driver Changes:

- Add PXP (Protected Xe Path) support for Gen12 integrated (Daniele,
  Sean, Anshuman)
  See "drm/i915/pxp: add PXP documentation" for details!
- Enable GuC submission by default on DG1 (Matt B)
- Remove force_probe protection for ADL-S (Raviteja)
- Add base support for XeHP/XeHP SDV (Matt R, Stuart, Lucas)
- Handle DRI_PRIME=1 on Intel igfx + Intel dgfx hybrid graphics setup (Tvrtko)
- Use Transparent Hugepages when IOMMU is enabled (Tvrtko, Chris)
- Implement LMEM backup and restore for suspend / resume (Thomas)
- Report INSTDONE_GEOM values in error state for DG2 (Matt R)
- Add DG2-specific shadow register table (Matt R)
- Update Gen11/Gen12/XeHP shadow register tables (Matt R)
- Maintain backward-compatible nested batch behavior on TGL+ (Matt R)
- Add new LRI reg offsets for DG2 (Akeem)
- Initialize unused MOCS entries to device specific values (Ayaz)
- Track and use the correct UC MOCS index on Gen12 (Ayaz)
- Add separate MOCS table for Gen12 devices other than TGL/RKL (Ayaz)
- Simplify the locking and eliminate some RCU usage (Daniel)
- Add some flushing for the 64K GTT path (Matt A)
- Mark GPU wedging on driver unregister unrecoverable (Janusz)

- Major rework in the GuC codebase, simplify locking and add docs (Matt B)
- Add DG1 GuC/HuC firmwares (Daniele, Matt B)
- Remember to call i915_sw_fence_fini on guc_state.blocked (Matt A)
- Use "gt" forcewake domain name for error messages instead of "blitter" (Matt R)
- Drop now duplicate LMEM uAPI RFC kerneldoc section (Daniel)
- Fix early tracepoints for requests (Matt A)
- Use locked access to ctx->engines in set_priority (Daniel)
- Convert gen6/gen7/gen8 read operations to fwtable (Matt R)
- Drop gen11/gen12 specific mmio write handlers (Matt R)
- Drop gen11 specific mmio read handlers (Matt R)
- Use designated initializers for init/exit table (Kees)
- Fix syncmap memory leak (Matt B)
- Add pretty printing for buddy allocator state debug (Matt A)
- Fix potential error pointer dereference in pinned_context() (Dan)
- Remove IS_ACTIVE macro (Lucas)
- Static code checker fixes (Nathan)
- Clean up disabled warnings (Nathan)
- Increase timeout in i915_gem_contexts selftests 5x for GuC submission (Matt B)
- Ensure wa_init_finish() is called for ctx workaround list (Matt R)
- Initialize L3CC table in mocs init (Sreedhar, Ayaz, Ram)
- Get PM ref before accessing HW register (Vinay)
- Move __i915_gem_free_object to ttm_bo_destroy (Maarten)
- Deduplicate frequency dump on debugfs (Lucas)
- Make wa list per-gt (Venkata)
- Do not define dummy vma in stack (Venkata)
- Take pinning into account in __i915_gem_object_is_lmem (Matt B, Thomas)
- Do not report currently active engine when describing objects (Tvrtko)
- Fix pdfdocs build error by removing nested grid from GuC docs (Akira)
- Remove false warning from the rps worker (Tejas)
- Flush buffer pools on driver remove (Janusz)
- Fix runtime pm handling in i915_gem_shrink (Maarten)
- Rework TTM object initialization slightly (Thomas)
- Use fixed offset for PTEs location (Michal Wa)
- Verify result from CTB (de)register action and improve error messages (Michal Wa)
- Fix bug in user proto-context creation that leaked contexts (Matt B)

- Re-use Gen11 forcewake read functions on Gen12 (Matt R)
- Make shadow tables range-based (Matt R)
- Ditch the i915_gem_ww_ctx loop member (Thomas, Maarten)
- Use NULL instead of 0 where appropriate (Ville)
- Rename pci/debugfs functions to respect file prefix (Jani, Lucas)
- Drop guc_communication_enabled (Daniele)
- Selftest fixes (Thomas, Daniel, Matt A, Maarten)
- Clean up inconsistent indenting (Colin)
- Use direction definition DMA_BIDIRECTIONAL instead of
  PCI_DMA_BIDIRECTIONAL (Cai)
- Add "intel_" as prefix in set_mocs_index() (Ayaz)

The following changes since commit 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f:

  Linux 5.15-rc1 (2021-09-12 16:28:37 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-10-08

for you to fetch changes up to 1a839e016e4964b5c8384e5d82e5e5ac02a23f52:

  drm/i915: remove IS_ACTIVE (2021-10-07 11:04:05 -0700)

----------------------------------------------------------------
UAPI Changes:

- Add uAPI for using PXP protected objects

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064

- Add PCI IDs and LMEM discovery/placement uAPI for DG1

  Mesa changes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11584

- Disable engine bonding on Gen12+ except TGL, RKL and ADL-S

Cross-subsystem Changes:

- Merges 'tip/locking/wwmutex' branch (core kernel tip)
- "mei: pxp: export pavp client to me client bus"

Core Changes:

- Update ttm_move_memcpy for async use (Thomas)

Driver Changes:

- Enable GuC submission by default on DG1 (Matt B)
- Add PXP (Protected Xe Path) support for Gen12 integrated (Daniele,
  Sean, Anshuman)
  See "drm/i915/pxp: add PXP documentation" for details!
- Remove force_probe protection for ADL-S (Raviteja)
- Add base support for XeHP/XeHP SDV (Matt R, Stuart, Lucas)
- Handle DRI_PRIME=1 on Intel igfx + Intel dgfx hybrid graphics setup (Tvrtko)
- Use Transparent Hugepages when IOMMU is enabled (Tvrtko, Chris)
- Implement LMEM backup and restore for suspend / resume (Thomas)
- Report INSTDONE_GEOM values in error state for DG2 (Matt R)
- Add DG2-specific shadow register table (Matt R)
- Update Gen11/Gen12/XeHP shadow register tables (Matt R)
- Maintain backward-compatible nested batch behavior on TGL+ (Matt R)
- Add new LRI reg offsets for DG2 (Akeem)
- Initialize unused MOCS entries to device specific values (Ayaz)
- Track and use the correct UC MOCS index on Gen12 (Ayaz)
- Add separate MOCS table for Gen12 devices other than TGL/RKL (Ayaz)
- Simplify the locking and eliminate some RCU usage (Daniel)
- Add some flushing for the 64K GTT path (Matt A)
- Mark GPU wedging on driver unregister unrecoverable (Janusz)

- Major rework in the GuC codebase, simplify locking and add docs (Matt B)
- Add DG1 GuC/HuC firmwares (Daniele, Matt B)
- Remember to call i915_sw_fence_fini on guc_state.blocked (Matt A)
- Use "gt" forcewake domain name for error messages instead of "blitter" (Matt R)
- Drop now duplicate LMEM uAPI RFC kerneldoc section (Daniel)
- Fix early tracepoints for requests (Matt A)
- Use locked access to ctx->engines in set_priority (Daniel)
- Convert gen6/gen7/gen8 read operations to fwtable (Matt R)
- Drop gen11/gen12 specific mmio write handlers (Matt R)
- Drop gen11 specific mmio read handlers (Matt R)
- Use designated initializers for init/exit table (Kees)
- Fix syncmap memory leak (Matt B)
- Add pretty printing for buddy allocator state debug (Matt A)
- Fix potential error pointer dereference in pinned_context() (Dan)
- Remove IS_ACTIVE macro (Lucas)
- Static code checker fixes (Nathan)
- Clean up disabled warnings (Nathan)
- Increase timeout in i915_gem_contexts selftests 5x for GuC submission (Matt B)
- Ensure wa_init_finish() is called for ctx workaround list (Matt R)
- Initialize L3CC table in mocs init (Sreedhar, Ayaz, Ram)
- Get PM ref before accessing HW register (Vinay)
- Move __i915_gem_free_object to ttm_bo_destroy (Maarten)
- Deduplicate frequency dump on debugfs (Lucas)
- Make wa list per-gt (Venkata)
- Do not define dummy vma in stack (Venkata)
- Take pinning into account in __i915_gem_object_is_lmem (Matt B, Thomas)
- Do not report currently active engine when describing objects (Tvrtko)
- Fix pdfdocs build error by removing nested grid from GuC docs (Akira)
- Remove false warning from the rps worker (Tejas)
- Flush buffer pools on driver remove (Janusz)
- Fix runtime pm handling in i915_gem_shrink (Maarten)
- Rework TTM object initialization slightly (Thomas)
- Use fixed offset for PTEs location (Michal Wa)
- Verify result from CTB (de)register action and improve error messages (Michal Wa)
- Fix bug in user proto-context creation that leaked contexts (Matt B)

- Re-use Gen11 forcewake read functions on Gen12 (Matt R)
- Make shadow tables range-based (Matt R)
- Ditch the i915_gem_ww_ctx loop member (Thomas, Maarten)
- Use NULL instead of 0 where appropriate (Ville)
- Rename pci/debugfs functions to respect file prefix (Jani, Lucas)
- Drop guc_communication_enabled (Daniele)
- Selftest fixes (Thomas, Daniel, Matt A, Maarten)
- Clean up inconsistent indenting (Colin)
- Use direction definition DMA_BIDIRECTIONAL instead of
  PCI_DMA_BIDIRECTIONAL (Cai)
- Add "intel_" as prefix in set_mocs_index() (Ayaz)

----------------------------------------------------------------
Akeem G Abodunrin (1):
      drm/i915/dg2: Add new LRI reg offsets

Akira Yokosawa (1):
      drm/i915/guc, docs: Fix pdfdocs build error by removing nested grid

Anshuman Gupta (2):
      drm/i915/pxp: Add plane decryption support
      drm/i915/pxp: black pixels on pxp disabled

Ayaz A Siddiqui (6):
      drm/i915/gt: Add support of mocs propagation
      drm/i915/gt: Set CMD_CCTL to UC for Gen12 Onward
      drm/i915/gt: Set BLIT_CCTL reg to un-cached
      drm/i915/gt: Initialize unused MOCS entries with device specific values
      drm/i915/gt: Add separate MOCS table for Gen12 devices other than TGL/RKL
      drm/i915/gt: Add "intel_" as prefix in set_mocs_index()

Cai Huoqing (1):
      drm/i915: Use direction definition DMA_BIDIRECTIONAL instead of PCI_DMA_BIDIRECTIONAL

Colin Ian King (1):
      drm/i915: clean up inconsistent indenting

Dan Carpenter (1):
      drm/i915/gt: Potential error pointer dereference in pinned_context()

Daniel Vetter (14):
      drm/doc/rfc: drop lmem uapi section
      drm/i915: Use locked access to ctx->engines in set_priority
      drm/i915: Actually delete gpu reloc selftests
      drm/i915: Release i915_gem_context from a worker
      drm/i915: Release ctx->syncobj on final put, not on ctx close
      drm/i915: Keep gem ctx->vm alive until the final put
      drm/i915: Drop code to handle set-vm races from execbuf
      drm/i915: Rename i915_gem_context_get_vm_rcu to i915_gem_context_get_eb_vm
      drm/i915: Use i915_gem_context_get_eb_vm in ctx_getparam
      drm/i915: Add i915_gem_context_is_full_ppgtt
      drm/i915: Use i915_gem_context_get_eb_vm in intel_context_set_gem
      drm/i915: Drop __rcu from gem_context->vm
      drm/i915: use xa_lock/unlock for fpriv->vm_xa lookups
      drm/i915: Stop rcu support for i915_address_space

Daniele Ceraolo Spurio (12):
      drm/i915/guc: drop guc_communication_enabled
      drm/i915/guc: put all guc objects in lmem when available
      drm/i915/guc: Add DG1 GuC / HuC firmware defs
      drm/i915/pxp: Define PXP component interface
      drm/i915/pxp: define PXP device flag and kconfig
      drm/i915/pxp: allocate a vcs context for pxp usage
      drm/i915/pxp: set KCR reg init
      drm/i915/pxp: interfaces for using protected objects
      drm/i915/pxp: start the arb session on demand
      drm/i915/pxp: add pxp debugfs
      drm/i915/pxp: add PXP documentation
      drm/i915/pxp: enable PXP for integrated Gen12

Huang, Sean Z (5):
      drm/i915/pxp: Implement funcs to create the TEE channel
      drm/i915/pxp: Create the arbitrary session after boot
      drm/i915/pxp: Implement arb session teardown
      drm/i915/pxp: Implement PXP irq handler
      drm/i915/pxp: Enable PXP power management

Jani Nikula (1):
      drm/i915/pci: rename functions to have i915_pci prefix

Janusz Krzysztofik (2):
      drm/i915: Mark GPU wedging on driver unregister unrecoverable
      drm/i915: Flush buffer pools on driver remove

Joonas Lahtinen (2):
      Merge drm/drm-next into drm-intel-gt-next
      Merge remote-tracking branch 'tip/locking/wwmutex' into drm-intel-gt-next

Kees Cook (1):
      drm/i915: Use designated initializers for init/exit table

Lucas De Marchi (8):
      drm/i915/xehpsdv: factor out function to read RP_STATE_CAP
      drm/i915/dg1: remove __maybe_unused leftover
      drm/i915/xehpsdv: Define MOCS table for XeHP SDV
      drm/i915: rename debugfs_gt files
      drm/i915: rename debugfs_engines files
      drm/i915: rename debugfs_gt_pm files
      drm/i915: deduplicate frequency dump on debugfs
      drm/i915: remove IS_ACTIVE

Maarten Lankhorst (5):
      drm/i915: Add pci ids and uapi for DG1
      drm/i915: Add mmap lock around vma_lookup() in the mman selftest.
      drm/i915: Move __i915_gem_free_object to ttm_bo_destroy
      kernel/locking: Add context to ww_mutex_trylock()
      drm/i915: Fix runtime pm handling in i915_gem_shrink

Matt Roper (21):
      drm/i915: correct name of GT forcewake domain in error messages
      drm/i915: Re-use gen11 forcewake read functions on gen12
      drm/i915: Make shadow tables range-based
      drm/i915/gen11: Update shadowed register table
      drm/i915/gen12: Update shadowed register table
      drm/i915/xehp: Xe_HP shadowed registers are a strict superset of gen12
      drm/i915/xehp: Loop over all gslices for INSTDONE processing
      drm/i915/dg2: Report INSTDONE_GEOM values in error state
      drm/i915/xehpsdv: Read correct RP_STATE_CAP register
      drm/i915/dg2: Maintain backward-compatible nested batch behavior
      drm/i915: Ensure wa_init_finish() is called for ctx workaround list
      drm/i915/dg2: Define MOCS table for DG2
      drm/i915/xehp: Check new fuse bits for SFC availability
      drm/i915: Check SFC fusing before recording/dumping SFC_DONE
      drm/i915/uncore: Convert gen6/gen7 read operations to fwtable
      drm/i915/uncore: Associate shadow table with uncore
      drm/i915/uncore: Replace gen8 write functions with general fwtable
      drm/i915/uncore: Drop gen11/gen12 mmio write handlers
      drm/i915/uncore: Drop gen11 mmio read handlers
      drm/i915/dg2: Add DG2-specific shadow register table
      drm/i915/uncore: fwtable read handlers are now used on all forcewake platforms

Matthew Auld (7):
      drm/i915/buddy: add some pretty printing
      drm/i915/debugfs: hook up ttm_resource_manager_debug
      drm/i915/gtt: add some flushing for the 64K GTT path
      drm/i915/selftests: fixup igt_shrink_thp
      drm/i915/request: fix early tracepoints
      drm/i915/selftests: exercise shmem_writeback with THP
      drm/i915: remember to call i915_sw_fence_fini

Matthew Brost (29):
      drm/i915: Disable bonding on gen12+ platforms
      drm/i915: Fix syncmap memory leak
      drm/i915/selftests: Increase timeout in i915_gem_contexts selftests
      drm/i915/guc: Fix blocked context accounting
      drm/i915/guc: Fix outstanding G2H accounting
      drm/i915/guc: Unwind context requests in reverse order
      drm/i915/guc: Don't drop ce->guc_active.lock when unwinding context
      drm/i915/guc: Process all G2H message at once in work queue
      drm/i915/guc: Workaround reset G2H is received after schedule done G2H
      Revert "drm/i915/gt: Propagate change in error status to children on unhold"
      drm/i915/guc: Kick tasklet after queuing a request
      drm/i915/guc: Don't enable scheduling on a banned context, guc_id invalid, not registered
      drm/i915/guc: Copy whole golden context, set engine state size of subset
      drm/i915/selftests: Add initial GuC selftest for scrubbing lost G2H
      drm/i915/guc: Take context ref when cancelling request
      drm/i915/guc: Don't touch guc_state.sched_state without a lock
      drm/i915/guc: Reset LRC descriptor if register returns -ENODEV
      drm/i915/guc: Release submit fence from an irq_work
      drm/i915/guc: Move guc_blocked fence to struct guc_state
      drm/i915/guc: Rework and simplify locking
      drm/i915/guc: Proper xarray usage for contexts_lookup
      drm/i915/guc: Drop pin count check trick between sched_disable and re-pin
      drm/i915/guc: Move GuC priority fields in context under guc_active
      drm/i915/guc: Move fields protected by guc->contexts_lock into sub structure
      drm/i915/guc: Drop guc_active move everything into guc_state
      drm/i915/guc: Add GuC kernel doc
      drm/i915/guc: Enable GuC submission by default on DG1
      drm/i915: Take pinning into account in __i915_gem_object_is_lmem
      drm/i915: Fix bug in user proto-context creation that leaked contexts

Michal Wajdeczko (5):
      drm/i915: Use fixed offset for PTEs location
      drm/i915/guc: Verify result from CTB (de)register action
      drm/i915/guc: Print error name on CTB (de)registration failure
      drm/i915/guc: Print error name on CTB send failure
      drm/i915/guc: Move and improve error message for missed CTB reply

Nathan Chancellor (5):
      drm/i915/selftest: Fix use of err in igt_reset_{fail, nop}_engine()
      drm/i915/selftests: Do not use import_obj uninitialized
      drm/i915/selftests: Always initialize err in igt_dmabuf_import_same_driver_lmem()
      drm/i915: Enable -Wsometimes-uninitialized
      drm/i915: Clean up disabled warnings

Sreedhar Telukuntla (1):
      drm/i915/gt: Initialize L3CC table in mocs init

Stuart Summers (1):
      drm/i915/xehpsdv: Add compute DSS type

Tejas Upadhyay (1):
      drm/i915: Remove warning from the rps worker

Thomas Hellström (13):
      drm/i915: Ditch the i915_gem_ww_ctx loop member
      drm/i915/ttm: Reorganize the ttm move code somewhat
      drm/ttm, drm/i915: Update ttm_move_memcpy for async use
      drm/i915/gem: Fix the mman selftest
      drm/i915/gem: Fix a lockdep warning the __i915_gem_is_lmem() function
      drm/i915/ttm: Implement a function to copy the contents of two TTM-based objects
      drm/i915/gem: Implement a function to process all gem objects of a region
      drm/i915/gt: Increase suspend timeout
      drm/i915 Implement LMEM backup and restore for suspend / resume
      drm/i915/gt: Register the migrate contexts with their engines
      drm/i915: Don't back up pinned LMEM context images and rings during suspend
      drm/i915: Reduce the number of objects subject to memcpy recover
      drm/i915/ttm: Rework object initialization slightly

Tvrtko Ursulin (3):
      drm/i915: Use Transparent Hugepages when IOMMU is enabled
      drm/i915/debugfs: Do not report currently active engine when describing objects
      drm/i915: Handle Intel igfx + Intel dgfx hybrid graphics setup

Venkata Sandeep Dhanalakota (2):
      drm/i915: Make wa list per-gt
      drm/i915: Do not define vma on stack

Ville Syrjälä (1):
      drm/i915: s/0/NULL/

Vinay Belgaumkar (1):
      drm/i915: Get PM ref before accessing HW register

Vitaly Lubart (1):
      mei: pxp: export pavp client to me client bus

ravitejax (1):
      drm/i915/adl_s: Remove require_force_probe protection

 Documentation/gpu/i915.rst                         |  10 +
 drivers/gpu/drm/drm_modeset_lock.c                 |   2 +-
 drivers/gpu/drm/i915/Kconfig                       |  11 +
 drivers/gpu/drm/i915/Makefile                      |  28 +-
 drivers/gpu/drm/i915/display/intel_display.c       |  34 +
 drivers/gpu/drm/i915/display/intel_display_types.h |   6 +
 drivers/gpu/drm/i915/display/skl_universal_plane.c |  49 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        | 298 +++----
 drivers/gpu/drm/i915/gem/i915_gem_context.h        |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |  42 +-
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |  75 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  26 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  33 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   4 +
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  44 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  28 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  30 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |  91 ++
 drivers/gpu/drm/i915/gem/i915_gem_pm.h             |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |  70 ++
 drivers/gpu/drm/i915/gem/i915_gem_region.h         |  37 +
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |   7 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            | 195 +++--
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |  14 +
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c         | 206 +++++
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h         |  26 +
 drivers/gpu/drm/i915/gem/i915_gemfs.c              |  22 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |  41 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  36 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |   7 +-
 .../drm/i915/gem/selftests/i915_gem_execbuffer.c   | 190 -----
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  28 +-
 drivers/gpu/drm/i915/gem/selftests/mock_context.c  |   5 +-
 drivers/gpu/drm/i915/gt/debugfs_engines.h          |  14 -
 drivers/gpu/drm/i915/gt/debugfs_gt_pm.h            |  14 -
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |   2 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   7 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.h               |   4 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |  20 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |  88 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   6 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  84 +-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |   2 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |  23 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.h          |   2 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  24 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  10 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  23 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |  22 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  22 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   2 -
 .../i915/gt/{debugfs_gt.c => intel_gt_debugfs.c}   |  18 +-
 .../i915/gt/{debugfs_gt.h => intel_gt_debugfs.h}   |  14 +-
 ...ebugfs_engines.c => intel_gt_engines_debugfs.c} |  10 +-
 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h |  14 +
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   7 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  22 +-
 .../gt/{debugfs_gt_pm.c => intel_gt_pm_debugfs.c}  | 153 ++--
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h      |  16 +
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |  12 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   9 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  11 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  88 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |   2 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               | 176 +++-
 drivers/gpu/drm/i915/gt/intel_mocs.h               |   1 +
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  13 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   4 +-
 drivers/gpu/drm/i915/gt/intel_ring.c               |   3 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   5 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  29 +-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   1 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  65 +-
 drivers/gpu/drm/i915/gt/intel_sseu.h               |  11 +-
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |  10 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 262 ++++--
 drivers/gpu/drm/i915/gt/intel_workarounds.h        |   2 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |   2 +
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   4 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  16 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  10 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |   2 +-
 .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h |  10 +-
 .../i915/gt/uc/abi/guc_communication_mmio_abi.h    |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  75 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  26 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |  36 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c     |  18 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  13 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c |   8 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 916 +++++++++++++--------
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |  14 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.c     |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  13 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c      |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  93 ++-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   9 +
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          | 127 +++
 drivers/gpu/drm/i915/gvt/gtt.c                     |  17 +-
 drivers/gpu/drm/i915/gvt/kvmgt.c                   |   4 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   2 +-
 drivers/gpu/drm/i915/i915_buddy.c                  |  45 +
 drivers/gpu/drm/i915/i915_buddy.h                  |   8 +
 drivers/gpu/drm/i915/i915_config.c                 |   2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                | 242 +-----
 drivers/gpu/drm/i915/i915_drv.c                    |   8 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  13 +-
 drivers/gpu/drm/i915/i915_gem.c                    |   2 -
 drivers/gpu/drm/i915/i915_gem_gtt.c                |   4 +-
 drivers/gpu/drm/i915/i915_gem_ww.h                 |  25 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  42 +-
 drivers/gpu/drm/i915/i915_module.c                 |   4 +-
 drivers/gpu/drm/i915/i915_pci.c                    |  10 +-
 drivers/gpu/drm/i915/i915_pci.h                    |  12 +-
 drivers/gpu/drm/i915/i915_query.c                  |   3 -
 drivers/gpu/drm/i915/i915_reg.h                    |  84 +-
 drivers/gpu/drm/i915/i915_request.c                |  25 +-
 drivers/gpu/drm/i915/i915_request.h                |  26 +-
 drivers/gpu/drm/i915/i915_trace.h                  |  14 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  20 +-
 drivers/gpu/drm/i915/i915_utils.h                  |  13 -
 drivers/gpu/drm/i915/intel_device_info.h           |   1 +
 drivers/gpu/drm/i915/intel_memory_region.c         |  12 +
 drivers/gpu/drm/i915/intel_memory_region.h         |   4 +
 drivers/gpu/drm/i915/intel_uncore.c                | 375 ++++-----
 drivers/gpu/drm/i915/intel_uncore.h                |  13 +
 drivers/gpu/drm/i915/pxp/intel_pxp.c               | 299 +++++++
 drivers/gpu/drm/i915/pxp/intel_pxp.h               |  64 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c           | 141 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h           |  15 +
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c       |  78 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h       |  21 +
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c           | 101 +++
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h           |  32 +
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c            |  46 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h            |  24 +
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c       | 175 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_session.h       |  15 +
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c           | 172 ++++
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h           |  17 +
 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h |  36 +
 drivers/gpu/drm/i915/pxp/intel_pxp_types.h         |  83 ++
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   8 +-
 .../gpu/drm/i915/selftests/i915_live_selftests.h   |   1 +
 drivers/gpu/drm/i915/selftests/i915_vma.c          |   4 +-
 .../drm/i915/selftests/intel_scheduler_helpers.c   |  12 +
 .../drm/i915/selftests/intel_scheduler_helpers.h   |   2 +
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |  34 +-
 drivers/gpu/drm/ttm/ttm_bo_util.c                  |  19 +-
 drivers/misc/mei/Kconfig                           |   2 +
 drivers/misc/mei/Makefile                          |   1 +
 drivers/misc/mei/pxp/Kconfig                       |  13 +
 drivers/misc/mei/pxp/Makefile                      |   7 +
 drivers/misc/mei/pxp/mei_pxp.c                     | 229 ++++++
 drivers/misc/mei/pxp/mei_pxp.h                     |  18 +
 drivers/regulator/core.c                           |   2 +-
 include/drm/i915_component.h                       |   1 +
 include/drm/i915_pxp_tee_interface.h               |  42 +
 include/drm/ttm/ttm_bo_driver.h                    |   2 +-
 include/linux/dma-resv.h                           |   2 +-
 include/linux/ww_mutex.h                           |  15 +-
 include/uapi/drm/i915_drm.h                        |  97 +++
 kernel/locking/mutex.c                             |  41 +
 kernel/locking/test-ww_mutex.c                     |  86 +-
 kernel/locking/ww_rt_mutex.c                       |  25 +
 lib/locking-selftest.c                             |   2 +-
 168 files changed, 5515 insertions(+), 1967 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
 delete mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c
 delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_engines.h
 delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt_pm.h
 rename drivers/gpu/drm/i915/gt/{debugfs_gt.c => intel_gt_debugfs.c} (67%)
 rename drivers/gpu/drm/i915/gt/{debugfs_gt.h => intel_gt_debugfs.h} (71%)
 rename drivers/gpu/drm/i915/gt/{debugfs_engines.c => intel_gt_engines_debugfs.c} (70%)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
 rename drivers/gpu/drm/i915/gt/{debugfs_gt_pm.c => intel_gt_pm_debugfs.c} (83%)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
 create mode 100644 drivers/misc/mei/pxp/Kconfig
 create mode 100644 drivers/misc/mei/pxp/Makefile
 create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
 create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
 create mode 100644 include/drm/i915_pxp_tee_interface.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-11-18  9:12 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2022-11-18  9:12 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

Here goes the last drm-intel-gt-next feature pull req for v6.2.

We have a couple of important fixes around memory management (TTM
and userptr), then demoting GuC kernel contexts to normal priority and
Meteorlake enabling.

Beyond that it's smaller fixes to code structure and corner cases.

Note the backmerge of drm-next to bring in v6.1-rc1 which had needed
dependencies for which I gave heads-up in IRC.

Regards, Joonas

**

drm-intel-gt-next-2022-11-18:

Core Changes:

- Backmerge of drm-next

Driver Changes:

- Restore probe_range behaviour for userptr (Matt A)
- Fix use-after-free on lmem_userfault_list (Matt A)
- Never purge busy TTM objects (Matt A)
- Meteorlake enabling (Daniele, Badal, Daniele, Stuart, Aravind, Alan)
- Demote GuC kernel contexts to normal priority (John)

- Use RC6 residency types as arguments to residency functions (Ashutosh,
  Rodrigo, Jani)
- Convert some legacy DRM debugging macros to new ones (Tvrtko)
- Don't deadlock GuC busyness stats vs reset (John)
- Remove excessive line feeds in GuC state dumps (John)
- Use i915_sg_dma_sizes() for all backends (Matt A)
- Prefer REG_FIELD_GET in intel_rps_get_cagf (Ashutosh, Rodrigo)
- Use GEN12_RPSTAT register for GT freq (Don, Badal, Ashutosh)
- Remove unwanted TTM ghost obj check (Matt A)
- Update workaround documentation (Lucas)

- Coding style and static checker fixes and cleanups
  (Jani, Umesh, Tvrtko, Lucas, Andrzej)
- Selftest improvements (Chris, Daniele, Riana, Andrzej)

The following changes since commit 60ba8c5bd94e17ab4b024f5cecf8b48e2cf36412:

  Merge tag 'drm-intel-gt-next-2022-11-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2022-11-04 17:33:34 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-11-18

for you to fetch changes up to 4bb9ca7ee07455bec0a802ecf0aa5b09496888e2:

  drm/i915/mtl: C6 residency and C state type for MTL SAMedia (2022-11-17 10:47:12 -0500)

----------------------------------------------------------------
Core Changes:

- Backmerge of drm-next

Driver Changes:

- Restore probe_range behaviour for userptr (Matt A)
- Fix use-after-free on lmem_userfault_list (Matt A)
- Never purge busy TTM objects (Matt A)
- Meteorlake enabling (Daniele, Badal, Daniele, Stuart, Aravind, Alan)
- Demote GuC kernel contexts to normal priority (John)

- Use RC6 residency types as arguments to residency functions (Ashutosh,
  Rodrigo, Jani)
- Convert some legacy DRM debugging macros to new ones (Tvrtko)
- Don't deadlock GuC busyness stats vs reset (John)
- Remove excessive line feeds in GuC state dumps (John)
- Use i915_sg_dma_sizes() for all backends (Matt A)
- Prefer REG_FIELD_GET in intel_rps_get_cagf (Ashutosh, Rodrigo)
- Use GEN12_RPSTAT register for GT freq (Don, Badal, Ashutosh)
- Remove unwanted TTM ghost obj check (Matt A)
- Update workaround documentation (Lucas)

- Coding style and static checker fixes and cleanups
  (Jani, Umesh, Tvrtko, Lucas, Andrzej)
- Selftest improvements (Chris, Daniele, Riana, Andrzej)

----------------------------------------------------------------
Alan Previn (1):
      drm/i915/pxp: Separate PXP FW interface structures for both v42 and 43

Andrzej Hajda (2):
      drm/i915: call i915_request_await_object from _i915_vma_move_to_active
      drm/i915/selftests: add igt_vma_move_to_active_unlocked

Aravind Iddamsetty (1):
      drm/i915/mtl: Handle wopcm per-GT and limit calculations.

Ashutosh Dixit (2):
      drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf
      drm/i915/gt: Use RC6 residency types as arguments to residency functions

Badal Nilawar (3):
      drm/i915/mtl: Add Wa_14017073508 for SAMedia
      drm/i915/mtl: Modify CAGF functions for MTL
      drm/i915/mtl: C6 residency and C state type for MTL SAMedia

Chris Wilson (1):
      drm/i915/selftests: Reduce oversaturation of request smoketesting

Daniele Ceraolo Spurio (12):
      drm/i915/mtl: add initial definitions for GSC CS
      drm/i915/mtl: pass the GSC CS info to the GuC
      drm/i915/mtl: add GSC CS interrupt support
      drm/i915/mtl: add GSC CS reset support
      drm/i915/mtl: don't expose GSC command streamer to the user
      drm/i915/guc: don't hardcode BCS0 in guc_hang selftest
      drm/i915/huc: only load HuC on GTs that have VCS engines
      drm/i915/uc: fetch uc firmwares for each GT
      drm/i915/uc: use different ggtt pin offsets for uc loads
      drm/i915/guc: define media GT GuC send regs
      drm/i915/guc: handle interrupts from media GuC
      drm/i915/guc: add the GSC CS to the GuC capture list

Don Hiatt (1):
      drm/i915: Use GEN12_RPSTAT register for GT freq

Jani Nikula (1):
      drm/i915/pxp: use <> instead of "" for headers in include/

John Harrison (3):
      drm/i915/guc: Remove excessive line feeds in state dumps
      drm/i915/guc: Properly initialise kernel contexts
      drm/i915/guc: Don't deadlock busyness stats vs reset

Joonas Lahtinen (1):
      Merge drm/drm-next into drm-intel-gt-next

Lucas De Marchi (2):
      Documentation/gpu: Fix section in the wrong scope
      drm/i915: Update workaround documentation

Matthew Auld (5):
      drm/i915/userptr: restore probe_range behaviour
      drm/i915/ttm: fix uaf with lmem_userfault_list handling
      drm/i915/ttm: add some sanity checks for lmem_userfault_list
      drm/i915: use i915_sg_dma_sizes() for all backends
      drm/i915/ttm: never purge busy objects

Nirmoy Das (1):
      drm/i915: Remove unwanted ghost obj check

Riana Tauro (1):
      drm/i915/guc/slpc: Add selftest for slpc tile-tile interaction

Stuart Summers (1):
      drm/i915/guc: Add GuC deprivilege feature to MTL

Tvrtko Ursulin (3):
      drm/i915: Partial abandonment of legacy DRM logging macros
      drm/i915: Simplify internal helper function signature
      drm/i915: Fix vma allocator debug

Umesh Nerlige Ramappa (1):
      drm/i915/perf: Fix kernel-doc warning

 Documentation/gpu/drm-usage-stats.rst              |   1 -
 Documentation/gpu/i915.rst                         |   2 +-
 drivers/gpu/drm/i915/Makefile                      |   5 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  43 ++++---
 drivers/gpu/drm/i915/gem/i915_gem_internal.c       |   5 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   7 +-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |   9 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  20 +--
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |   9 +-
 .../gpu/drm/i915/gem/selftests/huge_gem_object.c   |   2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |  10 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |  22 +---
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |   4 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  16 +--
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  10 +-
 drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c |   8 +-
 drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h |  14 +++
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   9 ++
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   1 +
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |  28 ++++-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  13 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   2 +-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   4 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |   5 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             | 104 +++++++++-------
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  27 +++++
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |  88 ++++++++++----
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |  25 ++--
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        |  12 +-
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   2 +
 drivers/gpu/drm/i915/gt/intel_rc6.c                |  64 ++++++----
 drivers/gpu/drm/i915/gt/intel_rc6.h                |  11 +-
 drivers/gpu/drm/i915/gt/intel_rc6_types.h          |  15 ++-
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |   4 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |  18 ++-
 drivers/gpu/drm/i915/gt/intel_reset.h              |   1 +
 drivers/gpu/drm/i915/gt/intel_rps.c                |  57 +++++++--
 drivers/gpu/drm/i915/gt/intel_rps.h                |   2 +
 drivers/gpu/drm/i915/{ => gt}/intel_wopcm.c        |  43 +++++--
 drivers/gpu/drm/i915/{ => gt}/intel_wopcm.h        |   0
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 134 ++++++++++++---------
 drivers/gpu/drm/i915/gt/intel_workarounds_types.h  |   3 +
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  14 +--
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  35 +-----
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |  33 ++---
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |   5 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |   6 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   8 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            |  70 ++++++++++-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |  26 ++--
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  47 +++++---
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   5 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  11 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     |  11 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |   7 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c          |  13 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |   2 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  15 ++-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |  29 +++++
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  12 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  46 +++++--
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |  14 +++
 .../gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c    |   8 +-
 drivers/gpu/drm/i915/gvt/dmabuf.c                  |   2 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   5 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   2 -
 drivers/gpu/drm/i915/i915_drv.h                    |  16 ++-
 drivers/gpu/drm/i915/i915_gem.c                    |   8 +-
 drivers/gpu/drm/i915/i915_getparam.c               |   2 +-
 drivers/gpu/drm/i915/i915_irq.c                    |  12 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   1 +
 drivers/gpu/drm/i915/i915_perf.c                   |  18 +--
 drivers/gpu/drm/i915/i915_perf_types.h             |   4 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |   9 +-
 drivers/gpu/drm/i915/i915_query.c                  |  12 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  10 ++
 drivers/gpu/drm/i915/i915_sysfs.c                  |   3 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  21 ++--
 drivers/gpu/drm/i915/i915_vma.h                    |   1 +
 drivers/gpu/drm/i915/intel_uncore.c                |  21 ++--
 .../gpu/drm/i915/pxp/intel_pxp_cmd_interface_42.h  |  28 +++++
 .../gpu/drm/i915/pxp/intel_pxp_cmd_interface_43.h  |  26 ++++
 .../gpu/drm/i915/pxp/intel_pxp_cmd_interface_cmn.h |  35 ++++++
 drivers/gpu/drm/i915/pxp/intel_pxp_huc.c           |  13 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c           |  12 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h |  57 ---------
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   5 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |  14 +--
 drivers/gpu/drm/i915/selftests/igt_spinner.c       |  20 +--
 drivers/gpu/drm/i915/selftests/mock_region.c       |   2 +-
 97 files changed, 1023 insertions(+), 631 deletions(-)
 rename drivers/gpu/drm/i915/{ => gt}/intel_wopcm.c (87%)
 rename drivers/gpu/drm/i915/{ => gt}/intel_wopcm.h (100%)
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_42.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_43.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_cmn.h
 delete mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-11-03  8:03 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2022-11-03  8:03 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

This amends the previous PR that did cause a build error with clang:

https://lists.freedesktop.org/archives/dri-devel/2022-October/377713.html

Quite naturally, it includes a fix to the hwmon code tested with Clang
version 14.0.5 and GCC 12.2.1.

Additionally there is a screen flickering fix for DG2 (#7306) abd one more
DG2 W/A. Eliminating spurious WARN on DG1.

Dust up Gen2-Gen5 machines to apply and test the latest CS timestamping
fixes for from Ville (archeologist, neutral, human).

Then a few more smaller cleanups and selftest additions.

Regards, Joonas

***

drm-intel-gt-next-2022-11-03:

Driver Changes:

- Fix for #7306: [Arc A380] white flickering when using arc as a
  secondary gpu (Matt A)
- Add Wa_18017747507 for DG2 (Wayne)
- Avoid spurious WARN on DG1 due to incorrect cache_dirty flag
  (Niranjana, Matt A)
- Corrections to CS timestamp support for Gen5 and earlier (Ville)

- Fix a build error used with clang compiler on hwmon (GG)
- Improvements to LMEM handling with RPM (Anshuman, Matt A)
- Cleanups in dmabuf code (Mike)

- Selftest improvements (Matt A)

The following changes since commit 7860d720a84c74b2761c6b7995392a798ab0a3cb:

  drm/msm: Fix build break with recent mm tree (2022-09-30 10:13:49 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-11-03

for you to fetch changes up to 8f956e9a2c9bdb22ac50c8b7656e2ea29c2e656c:

  drm/i915/hwmon: Fix a build error used with clang compiler (2022-11-03 09:34:22 +0200)

----------------------------------------------------------------
Driver Changes:

- Fix for #7306: [Arc A380] white flickering when using arc as a
  secondary gpu (Matt A)
- Add Wa_18017747507 for DG2 (Wayne)
- Avoid spurious WARN on DG1 due to incorrect cache_dirty flag
  (Niranjana, Matt A)
- Corrections to CS timestamp support for Gen5 and earlier (Ville)

- Fix a build error used with clang compiler on hwmon (GG)
- Improvements to LMEM handling with RPM (Anshuman, Matt A)
- Cleanups in dmabuf code (Mike)

- Selftest improvements (Matt A)

----------------------------------------------------------------
Alan Previn (4):
      drm/i915/guc: Add error-capture init warnings when needed
      drm/i915/guc: Add compute reglist for guc err capture
      drm/i915/guc: Fix GuC error capture sizing estimation and reporting
      drm/i915/guc: Remove intel_context:number_committed_requests counter

Andi Shyti (1):
      drm/i915/trace: Remove unused frequency trace

Andrzej Hajda (2):
      drm/i915: use intel_uncore_rmw when appropriate
      drm/i915/gt: use intel_uncore_rmw when appropriate

Anshuman Gupta (2):
      drm/i915: Encapsulate lmem rpm stuff in intel_runtime_pm
      drm/i915/dgfx: Grab wakeref at i915_ttm_unmap_virtual

Aravind Iddamsetty (1):
      drm/i915/mtl: enable local stolen memory

Ashutosh Dixit (5):
      drm/i915/mtl: PERF_LIMIT_REASONS changes for MTL
      drm/i915/rps: Freq caps for MTL
      drm/i915: Perf_limit_reasons are only available for Gen11+
      drm/i915/hwmon: Expose card reactive critical power
      drm/i915/hwmon: Expose power1_max_interval

Chris Wilson (6):
      drm/i915/gt: Cleanup partial engine discovery failures
      drm/i915/gem: Really move i915_gem_context.link under ref protection
      drm/i915/gt: Restrict forced preemption to the active context
      drm/i915/gt: Use i915_vm_put on ppgtt_create error paths
      drm/i915/gt: Move scratch page into system memory on all platforms
      drm/i915/gt: Bump the reset-failure timeout to 60s

Colin Ian King (2):
      drm/i915/gem: remove redundant assignments to variable ret
      drm/i915/perf: remove redundant variable 'taken'

Dale B Stimson (4):
      drm/i915/hwmon: Add HWMON infrastructure
      drm/i915/hwmon: Power PL1 limit and TDP setting
      drm/i915/hwmon: Show device level energy usage
      drm/i915/hwmon: Extend power/energy for XEHPSDV

Daniele Ceraolo Spurio (7):
      drm/i915/pxp: load the pxp module when we have a gsc-loaded huc
      drm/i915/dg2: setup HuC loading via GSC
      drm/i915/huc: track delayed HuC load with a fence
      drm/i915/huc: stall media submission until HuC is loaded
      drm/i915/huc: better define HuC status getparam possible return values.
      drm/i915/huc: define gsc-compatible HuC fw for DG2
      drm/i915/huc: bump timeout for delayed load and reduce print verbosity

Gustavo Sousa (1):
      drm/i915/xelp: Add Wa_1806527549

Gwan-gyeong Mun (2):
      drm/i915/gt: Remove unused function prototype
      drm/i915/hwmon: Fix a build error used with clang compiler

Jani Nikula (1):
      drm/i915: move i915_coherent_map_type() to i915_gem_pages.c and un-inline

Janusz Krzysztofik (1):
      drm/i915/gem: Flush contexts on driver release

John Harrison (6):
      drm/i915/guc: Fix release build bug in 'remove log size module parameters'
      drm/i915/guc: Enable compute scheduling on DG2
      drm/i915/guc: Limit scheduling properties to avoid overflow
      drm/i915: Fix compute pre-emption w/a to apply to compute engines
      drm/i915: Make the heartbeat play nice with long pre-emption timeouts
      drm/i915: Improve long running compute w/a for GuC submission

Karolina Drobnik (1):
      i915/i915_gem_context: Remove debug message in i915_gem_context_create_ioctl

Lionel Landwerlin (1):
      drm/i915/perf: complete programming whitelisting for XEHPSDV

Lucas De Marchi (7):
      drm/i915: Add missing mask when reading GEN12_DSMBASE
      drm/i915: Split i915_gem_init_stolen()
      drm/i915/dgfx: Make failure to setup stolen non-fatal
      drm/i915: Noop lrc_init_wa_ctx() on recent/future platforms
      drm/i915: Fix __gen125_emit_bb_start() without WA
      drm/i915/gt: Document function to decode register state context
      drm/i915/gt: Fix platform prefix

Matt Atwood (1):
      drm/i915/dg2: introduce Wa_22015475538

Matt Roper (21):
      drm/i915/mtl: Add MTL forcewake support
      drm/i915: Split GAM and MSLICE steering
      drm/i915/mtl: Define engine context layouts
      drm/i915: Document and future-proof preemption control policy
      drm/i915/gen8: Create separate reg definitions for new MCR registers
      drm/i915/xehp: Create separate reg definitions for new MCR registers
      drm/i915/gt: Drop a few unused register definitions
      drm/i915/gt: Correct prefix on a few registers
      drm/i915/gt: Add intel_gt_mcr_multicast_rmw() operation
      drm/i915/xehp: Check for faults on primary GAM
      drm/i915/gt: Add intel_gt_mcr_wait_for_reg_fw()
      drm/i915: Define MCR registers explicitly
      drm/i915/gt: Always use MCR functions on multicast registers
      drm/i915/guc: Handle save/restore of MCR registers explicitly
      drm/i915/gt: Add MCR-specific workaround initializers
      drm/i915: Define multicast registers as a new type
      drm/i915/xelpg: Add multicast steering
      drm/i915/xelpmp: Add multicast steering for media GT
      drm/i915/pvc: Update forcewake domain for CCS register ranges
      drm/i915/xelpg: Fix write to MTL_MCR_SELECTOR
      drm/i915/mtl: Add missing steering table terminators

Matthew Auld (13):
      drm/i915/ttm: implement access_memory
      drm/i915: remove the TODO in pin_and_fence_fb_obj
      drm/i915/display: handle migration for dpt
      drm/i915: allow control over the flags when migrating
      drm/i915/display: consider DG2_RC_CCS_CC when migrating buffers
      drm/i915: check memory is mappable in read_from_page
      drm/i915: add back GEN12_BDSM_MASK
      drm/i915: restore stolen memory behaviour for DG2
      drm/i915: enable PS64 support for DG2
      drm/i915/uapi: expose GTT alignment
      Revert "drm/i915/uapi: expose GTT alignment"
      drm/i915/dmabuf: fix sg_table handling in map_dma_buf
      drm/i915/selftests: exercise GPU access from the importer

Matthew Brost (1):
      drm/i915/guc: Delay disabling guc_id scheduling for better hysteresis

Michael J. Ruhl (2):
      drm/i915/dmabuf: dmabuf cleanup
      drm/i915/dmabuf: Use scatterlist for_each_sg API

Nathan Chancellor (1):
      drm/i915: Fix CFI violations in gt_sysfs

Niranjana Vishwanathapura (2):
      drm/i915: Remove unwanted pointer unpacking
      drm/i915: Do not set cache_dirty for DGFX

Nirmoy Das (5):
      drm/i915: Do not cleanup obj with NULL bo->resource
      drm/i915: Improve debug print in vm_fault_ttm
      drm/i915: Fix a potential UAF at device unload
      drm/i915: remove excessive i915_gem_drain_freed_objects
      drm/i915: Refactor ttm ghost obj detection

Prathap Kumar Valsan (1):
      drm/i915/gt: Flush to global observation point before breadcrumb write

Riana Tauro (4):
      drm/i915/guc/slpc: Run SLPC selftests on all tiles
      drm/i915/selftests: Add helper function measure_power
      drm/i915/guc/slpc: Add SLPC selftest live_slpc_power
      drm/i915/hwmon: Add HWMON current voltage support

Robert Beckett (1):
      drm/i915: stop abusing swiotlb_max_segment

Tejas Upadhyay (1):
      drm/i915/ehl: Update MOCS table for EHL

Thomas Hellström (1):
      drm/i915: Fix display problems after resume

Tilak Tangudu (1):
      drm/i915/debugfs: Add perf_limit_reasons in debugfs

Tomas Winkler (5):
      mei: add support to GSC extended header
      mei: bus: enable sending gsc commands
      mei: adjust extended header kdocs
      mei: pxp: support matching with a gfx discrete card
      drm/i915/pxp: add huc authentication and loading command

Tvrtko Ursulin (7):
      drm/i915: Make GEM resume all engines
      drm/i915: Make GEM suspend all GTs
      drm/i915: Handle all GTs on driver (un)load paths
      drm/i915/selftests: Remove flush_scheduled_work() from live_execlists
      Merge drm/drm-next into drm-intel-gt-next
      drm/i915/guc: Fix revocation of non-persistent contexts
      drm/i915/selftests: Stop using kthread_stop()

Umesh Nerlige Ramappa (14):
      drm/i915/perf: Fix OA filtering logic for GuC mode
      drm/i915/perf: Add 32-bit OAG and OAR formats for DG2
      drm/i915/perf: Fix noa wait predication for DG2
      drm/i915/perf: Determine gen12 oa ctx offset at runtime
      drm/i915/perf: Enable bytes per clock reporting in OA
      drm/i915/perf: Simply use stream->ctx
      drm/i915/perf: Move gt-specific data from i915->perf to gt->perf
      drm/i915/perf: Replace gt->perf.lock with stream->lock for file ops
      drm/i915/perf: Use gt-specific ggtt for OA and noa-wait buffers
      drm/i915/perf: Store a pointer to oa_format in oa_buffer
      drm/i915/perf: Add Wa_1508761755:dg2
      drm/i915/perf: Apply Wa_18013179988
      drm/i915/perf: Save/restore EU flex counters across reset
      drm/i915/perf: Enable OA for DG2

Ville Syrjälä (9):
      drm/i915: Extract intel_mmio_bar()
      drm/i915: Name our BARs based on the spec
      drm/i915: s/HAS_BAR2_SMEM_STOLEN/HAS_LMEMBAR_SMEM_STOLEN/
      drm/i915: Fix cs timestamp frequency for ctg/elk/ilk
      drm/i915: Stop claiming cs timestamp frquency on gen2/3
      drm/i915: Fix cs timestamp frequency for cl/bw
      drm/i915/selftests: Run MI_BB perf selftests on SNB
      drm/i915/selftests: Test RING_TIMESTAMP on gen4/5
      drm/i915/selftests: Run the perf MI_BB tests on gen4/5

Vinay Belgaumkar (5):
      drm/i915: Add a wrapper for frequency debugfs
      drm/i915/slpc: Update the frequency debugfs
      drm/i915/slpc: Optmize waitboost for SLPC
      drm/i915/slpc: Use platform limits for min/max frequency
      drm/i915/guc: Support OA when Wa_16011777198 is enabled

Vitaly Lubart (3):
      mei: bus: extend bus API to support command streamer API
      mei: pxp: add command streamer API to the PXP driver
      drm/i915/pxp: implement function for sending tee stream command

Wayne Boyer (1):
      drm/i915/dg2: Introduce Wa_18017747507

 .../ABI/testing/sysfs-driver-intel-i915-hwmon      |  75 +++
 MAINTAINERS                                        |   1 +
 drivers/gpu/drm/i915/Kconfig.profile               |  26 +-
 drivers/gpu/drm/i915/Makefile                      |  14 +-
 drivers/gpu/drm/i915/display/intel_dpt.c           |   1 +
 drivers/gpu/drm/i915/display/intel_fb_pin.c        |  63 +-
 drivers/gpu/drm/i915/display/intel_lpe_audio.c     |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |  51 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   5 -
 drivers/gpu/drm/i915/gem/i915_gem_internal.c       |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  21 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  49 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   8 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  12 +
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |  35 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         | 261 +++++---
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            | 120 +++-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |  18 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |   5 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    | 157 ++++-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  | 118 ++--
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |  79 ++-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |   1 +
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |  55 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |  12 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  92 +--
 drivers/gpu/drm/i915/gt/intel_context.c            |   5 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |  11 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   9 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   6 +
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          | 113 +++-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |  39 ++
 drivers/gpu/drm/i915/gt/intel_engine_regs.h        |   1 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  15 +
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  25 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  26 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |   4 +
 drivers/gpu/drm/i915/gt/intel_gsc.c                |  23 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 | 141 +++-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   1 +
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |  38 +-
 drivers/gpu/drm/i915/gt/intel_gt_mcr.c             | 305 ++++++++-
 drivers/gpu/drm/i915/gt/intel_gt_mcr.h             |  24 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      | 196 ++----
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            | 181 +++--
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c           |  15 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h           |   7 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        | 480 +++++++-------
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |  23 +-
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  43 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   3 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                | 143 +++-
 drivers/gpu/drm/i915/gt/intel_lrc.h                |   2 +
 drivers/gpu/drm/i915/gt/intel_migrate.c            |   1 +
 drivers/gpu/drm/i915/gt/intel_mocs.c               |  20 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   2 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                | 265 +++++++-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   3 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |   4 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 577 ++++++++++------
 drivers/gpu/drm/i915/gt/intel_workarounds_types.h  |   9 +-
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |  22 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  50 +-
 drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |  36 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  51 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |   1 +
 drivers/gpu/drm/i915/gt/selftest_rps.c             |  12 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            | 190 +++++-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |   2 +-
 drivers/gpu/drm/i915/gt/sysfs_engines.c            |  25 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |   1 +
 .../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h  |   9 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h      |   9 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  16 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  71 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     | 119 +++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c     |  61 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  12 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  43 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        | 103 +++
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h        |   4 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h  |   3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 358 ++++++++--
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             | 262 +++++++-
 drivers/gpu/drm/i915/gt/uc/intel_huc.h             |  31 +
 drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c          |  34 +
 drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h          |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  24 +-
 drivers/gpu/drm/i915/gvt/cfg_space.c               |   4 +-
 drivers/gpu/drm/i915/gvt/handlers.c                |   4 +-
 drivers/gpu/drm/i915/gvt/mmio_context.c            |  14 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   8 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  30 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  52 +-
 drivers/gpu/drm/i915/i915_getparam.c               |   3 +
 drivers/gpu/drm/i915/i915_gpu_error.c              |  12 +-
 drivers/gpu/drm/i915/i915_hwmon.c                  | 732 +++++++++++++++++++++
 drivers/gpu/drm/i915/i915_hwmon.h                  |  20 +
 drivers/gpu/drm/i915/i915_pci.c                    |   9 +-
 drivers/gpu/drm/i915/i915_perf.c                   | 582 ++++++++++++----
 drivers/gpu/drm/i915/i915_perf.h                   |   2 +
 drivers/gpu/drm/i915/i915_perf_oa_regs.h           |   6 +-
 drivers/gpu/drm/i915/i915_perf_types.h             |  47 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  22 +
 drivers/gpu/drm/i915/i915_reg_defs.h               |  27 +-
 drivers/gpu/drm/i915/i915_request.c                |  24 +
 drivers/gpu/drm/i915/i915_request.h                |   5 +
 drivers/gpu/drm/i915/i915_scatterlist.h            |  34 +-
 drivers/gpu/drm/i915/i915_selftest.h               |   2 +
 drivers/gpu/drm/i915/i915_trace.h                  |  15 -
 drivers/gpu/drm/i915/i915_vma.c                    |   9 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   3 +-
 drivers/gpu/drm/i915/intel_gvt_mmio_table.c        |   2 +-
 drivers/gpu/drm/i915/intel_mchbar_regs.h           |  21 +
 drivers/gpu/drm/i915/intel_pci_config.h            |  28 +-
 drivers/gpu/drm/i915/intel_pm.c                    | 205 +++---
 drivers/gpu/drm/i915/intel_runtime_pm.c            |   5 +
 drivers/gpu/drm/i915/intel_runtime_pm.h            |  22 +
 drivers/gpu/drm/i915/intel_uncore.c                | 280 +++++++-
 drivers/gpu/drm/i915/intel_uncore.h                |   2 +
 drivers/gpu/drm/i915/pxp/intel_pxp.c               |  32 +-
 drivers/gpu/drm/i915/pxp/intel_pxp.h               |  32 -
 drivers/gpu/drm/i915/pxp/intel_pxp_huc.c           |  69 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_huc.h           |  13 +
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h           |   8 +
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c       |   8 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_session.h       |  11 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c           | 139 +++-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h           |   5 +
 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h |  23 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_types.h         |   6 +
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  10 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |  16 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      | 252 ++++---
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |   4 +
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |   1 -
 drivers/misc/mei/bus.c                             | 146 +++-
 drivers/misc/mei/client.c                          |  55 +-
 drivers/misc/mei/hbm.c                             |  13 +
 drivers/misc/mei/hw-me.c                           |   7 +-
 drivers/misc/mei/hw.h                              |  89 ++-
 drivers/misc/mei/interrupt.c                       |  47 +-
 drivers/misc/mei/mei_dev.h                         |   8 +
 drivers/misc/mei/pxp/mei_pxp.c                     |  38 +-
 include/drm/i915_pxp_tee_interface.h               |   5 +
 include/linux/mei_cl_bus.h                         |   6 +
 include/uapi/drm/i915_drm.h                        |  62 +-
 153 files changed, 6868 insertions(+), 2117 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
 create mode 100644 drivers/gpu/drm/i915/i915_hwmon.c
 create mode 100644 drivers/gpu/drm/i915/i915_hwmon.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_huc.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_huc.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2022-10-31 11:07 Joonas Lahtinen
@ 2022-11-01 19:33 ` Dave Airlie
  0 siblings, 0 replies; 37+ messages in thread
From: Dave Airlie @ 2022-11-01 19:33 UTC (permalink / raw)
  To: Joonas Lahtinen
  Cc: Tvrtko Ursulin, dim-tools, Daniel Vetter, dri-devel,
	Thomas Zimmermann, Rodrigo Vivi, intel-gfx

On Mon, 31 Oct 2022 at 21:07, Joonas Lahtinen
<joonas.lahtinen@linux.intel.com> wrote:
>
> Hi Dave & Daniel,
>
> Here goes first drm-intel-gt-next pull req towards 6.2.
>
> We have a fix for #6222 (kernel memory corruption issue) and fix for
> display regression after resume. A missing W/A for Gen12 iGPUs and
> extension of compute pre-emption timeout to 7.5 seconds to account for
> compute corner cases. Improvements to GuC compute error capture,
> scheduling hysteresis and SLPC. Fixes to EHL MOCS tables. Better docs
> for I915_PARAM_HUC_STATUS and pre-emption control policy. Extending the
> grace period for full GPU reset timeout to 60 seconds to better capture
> logs or recover, as opposed to just giving up on whole device in 5 seconds.
>
> We're starting to add HWMON metrics for recent devices. More MTL
> enabling, DG2 workarounds, DG2 HuC support, OA for DG2 is enabled. Small
> bar enabling, PS64 support added for DG2 page tables. ptrace support for
> local memory objects, local-memory migration for display surfaces.
>
> Note that there is drm/drm-next backmerge and then MEI subsystem patches
> around GSC/PXP which are intertwined with i915 change so merged here as
> agreed with Tomas and Greg.
>
> Additionally the usual amount of refactoring, cleanups, debugging
> improvements and static checker fixes.

Fails to build with clang here.
  CC [M]  drivers/gpu/drm/i915/i915_hwmon.o
/home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/i915_hwmon.c:115:16:
error: result of comparison of constant 18446744073709551615 with
expression of type 'typeof (_Generic((field_msk), char: (unsigned
char)0, unsigned char: (unsigned char)0, signed char: (unsigned
char)0, unsigned short: (unsigned short)0, short: (unsigned short)0,
unsigned int: (unsigned int)0, int: (unsigned int)0, unsigned long:
(unsigned long)0, long: (unsigned long)0, unsigned long long:
(unsigned long long)0, long long: (unsigned long long)0, default:
(field_msk)))' (aka 'unsigned int') is always false
[-Werror,-Wtautological-constant-out-of-range-compare]
        bits_to_set = FIELD_PREP(field_msk, nval);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/airlied/devel/kernel/dim/src/include/linux/bitfield.h:114:3:
note: expanded from macro 'FIELD_PREP'
                __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");    \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/airlied/devel/kernel/dim/src/include/linux/bitfield.h:71:53:
note: expanded from macro '__BF_FIELD_CHECK'
                BUILD_BUG_ON_MSG(__bf_cast_unsigned(_mask, _mask) >     \
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/airlied/devel/kernel/dim/src/include/linux/build_bug.h:39:58:
note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                    ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/home/airlied/devel/kernel/dim/src/include/linux/compiler_types.h:357:22:
note: expanded from macro 'compiletime_assert'
        _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/airlied/devel/kernel/dim/src/include/linux/compiler_types.h:345:23:
note: expanded from macro '_compiletime_assert'
        __compiletime_assert(condition, msg, prefix, suffix)
        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/airlied/devel/kernel/dim/src/include/linux/compiler_types.h:337:9:
note: expanded from macro '__compiletime_assert'
                if (!(condition))                                       \
                      ^~~~~~~~~
1 error generated.

clang -v
clang version 14.0.5 (Fedora 14.0.5-1.fc36)

Dave.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-10-31 11:07 Joonas Lahtinen
  2022-11-01 19:33 ` Dave Airlie
  0 siblings, 1 reply; 37+ messages in thread
From: Joonas Lahtinen @ 2022-10-31 11:07 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

Here goes first drm-intel-gt-next pull req towards 6.2.

We have a fix for #6222 (kernel memory corruption issue) and fix for
display regression after resume. A missing W/A for Gen12 iGPUs and
extension of compute pre-emption timeout to 7.5 seconds to account for
compute corner cases. Improvements to GuC compute error capture,
scheduling hysteresis and SLPC. Fixes to EHL MOCS tables. Better docs
for I915_PARAM_HUC_STATUS and pre-emption control policy. Extending the
grace period for full GPU reset timeout to 60 seconds to better capture
logs or recover, as opposed to just giving up on whole device in 5 seconds.

We're starting to add HWMON metrics for recent devices. More MTL
enabling, DG2 workarounds, DG2 HuC support, OA for DG2 is enabled. Small
bar enabling, PS64 support added for DG2 page tables. ptrace support for
local memory objects, local-memory migration for display surfaces.

Note that there is drm/drm-next backmerge and then MEI subsystem patches
around GSC/PXP which are intertwined with i915 change so merged here as
agreed with Tomas and Greg.

Additionally the usual amount of refactoring, cleanups, debugging
improvements and static checker fixes.

Regards, Joonas

PS. Once you have pulled this, I will backmerge drm-next to bring in
more dependencies for upcoming patches.

***

drm-intel-gt-next-2022-10-31:

- Start adding HWMON metrics (Dale, Ashutosh, Riana, Badal)

  See Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon

Cross-subsystem Changes:

- MEI subsystem patches for GSC/PXP (Vitaly, Tomas)
	* R-b'd by Greg, agreed to merge via drm-intel-gt-next
- Backmerge of drm/drm-next to pull misc/mei changes for DG2 HuC

Driver Changes:

- Fix for #6222: Kernel memory corruption when running piglit with OA
  enabled (Chris)
- Add Wa_1806527549 for Gen12 iGPU (Gustavo)
- Fix display problems after resume regression (Thomas)
- Extend pre-emption timeout to 7.5 seconds on compute capable engines
  on Gen12 (John)
- Add error compute registers to GuC error capture list (Alan)
- Delay disabling guc_id scheduling for better hysteresis (Matt B)
- Use platform min/max frequency with GuC SLPC (Vinay)
- Meteorlake (MTL) enabling (Ashutosh, Matt R, Aravind)
- Add more DG2 workarounds (Matt A)
- DG2 HuC loading (Daniele)
- Enable OA support for DG2 (Umesh, Vinay, Lionel)
- Better document I915_PARAM_HUC_STATUS error codes (Daniele)
- Enable compute scheduling on DG2 (John)
- Small bar enabling for dGPU (Matt A)
- Enable PS64 support for DG2 (Matt A)
- Handle migration to local-memory for display surfaces (Matt A)
- Update MOCS table for EHL (Tejas)
- Limit GuC scheduling properties to avoid overflow (John)
- Update forcewake domain for CCS register ranges for PVC (Matt R)
- Implement access_memory for local memory to enable ptrace (Matt A)
- Document and future-proof preemption control policy (Matt R)
- Restrict forced preemption to the active context (Chris)
- Move scratch page into system memory on all platforms (Chris)
- Flush to global observation point before breadcrumb write (Prathap, Nirmoy)
- Bump the reset-failure timeout to 60s (Chris)

- Codebase restructuring for more clarity (Lucas, Jani, Vinay, Nirmoy,
  Ville, Andrzej)
- Stop abusing swiotlb_max_segment (Robert, Christoph)
- Fix a potential UAF at device unload (Nirmoy, Chris)
- Fix revocation of non-persistent contexts with GuC (Tvrtko)
- Fix GuC error capture sizing estimation and reporting (Alan)
- Make failure to setup stolen non-fatal on dGPU (Lucas)
- Fixes to perf_limit_reasons and add to debugfs (Ashutosh, Tilak)
- Release build fix for GuC log size removal (John)
- Cleanup partial engine discovery failures (Chris)
- Do not cleanup obj with NULL bo->resource (Nirmoy)
- Split GAM and MSLICE steering (Matt R)
- Flush GEM contexts on driver release (Janusz, Chris)
- Multi GT suspend and resume enabling (Tvrtko)
- Use i915_vm_put on ppgtt_create error paths (Chris)

- Remove leftover code from previous cleanups (Niranjana, Nirmoy,
  Gwan-gyeong, Matt A, Andi, Alan, Karolina)
- Selftest and debugging improvements (Tvrtko, Nirmoy, Riana, Vinay)
- Static checker fixups (Colin, Nathan)
- Documentation improvements (Lucas)

The following changes since commit 7860d720a84c74b2761c6b7995392a798ab0a3cb:

  drm/msm: Fix build break with recent mm tree (2022-09-30 10:13:49 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-10-31

for you to fetch changes up to 876e9047a91839ee5be0ba099036d19883e52ca2:

  drm/i915/mtl: Add missing steering table terminators (2022-10-28 17:36:56 -0700)

----------------------------------------------------------------
- Start adding HWMON metrics (Dale, Ashutosh, Riana, Badal)

  See Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon

Cross-subsystem Changes:

- MEI subsystem patches for GSC/PXP (Vitaly, Tomas)
	* R-b'd by Greg, agreed to merge via drm-intel-gt-next
- Backmerge of drm/drm-next to pull misc/mei changes for DG2 HuC

Driver Changes:

- Fix for #6222: Kernel memory corruption when running piglit with OA
  enabled (Chris)
- Add Wa_1806527549 for Gen12 iGPU (Gustavo)
- Fix display problems after resume regression (Thomas)
- Extend pre-emption timeout to 7.5 seconds on compute capable engines
  on Gen12 (John)
- Add error compute registers to GuC error capture list (Alan)
- Delay disabling guc_id scheduling for better hysteresis (Matt B)
- Use platform min/max frequency with GuC SLPC (Vinay)
- Meteorlake (MTL) enabling (Ashutosh, Matt R, Aravind)
- Add more DG2 workarounds (Matt A)
- DG2 HuC loading (Daniele)
- Enable OA support for DG2 (Umesh, Vinay, Lionel)
- Better document I915_PARAM_HUC_STATUS error codes (Daniele)
- Enable compute scheduling on DG2 (John)
- Small bar enabling for dGPU (Matt A)
- Enable PS64 support for DG2 (Matt A)
- Handle migration to local-memory for display surfaces (Matt A)
- Update MOCS table for EHL (Tejas)
- Limit GuC scheduling properties to avoid overflow (John)
- Update forcewake domain for CCS register ranges for PVC (Matt R)
- Implement access_memory for local memory to enable ptrace (Matt A)
- Document and future-proof preemption control policy (Matt R)
- Restrict forced preemption to the active context (Chris)
- Move scratch page into system memory on all platforms (Chris)
- Flush to global observation point before breadcrumb write (Prathap, Nirmoy)
- Bump the reset-failure timeout to 60s (Chris)

- Codebase restructuring for more clarity (Lucas, Jani, Vinay, Nirmoy,
  Ville, Andrzej)
- Stop abusing swiotlb_max_segment (Robert, Christoph)
- Fix a potential UAF at device unload (Nirmoy, Chris)
- Fix revocation of non-persistent contexts with GuC (Tvrtko)
- Fix GuC error capture sizing estimation and reporting (Alan)
- Make failure to setup stolen non-fatal on dGPU (Lucas)
- Fixes to perf_limit_reasons and add to debugfs (Ashutosh, Tilak)
- Release build fix for GuC log size removal (John)
- Cleanup partial engine discovery failures (Chris)
- Do not cleanup obj with NULL bo->resource (Nirmoy)
- Split GAM and MSLICE steering (Matt R)
- Flush GEM contexts on driver release (Janusz, Chris)
- Multi GT suspend and resume enabling (Tvrtko)
- Use i915_vm_put on ppgtt_create error paths (Chris)

- Remove leftover code from previous cleanups (Niranjana, Nirmoy,
  Gwan-gyeong, Matt A, Andi, Alan, Karolina)
- Selftest and debugging improvements (Tvrtko, Nirmoy, Riana, Vinay)
- Static checker fixups (Colin, Nathan)
- Documentation improvements (Lucas)

----------------------------------------------------------------
Alan Previn (4):
      drm/i915/guc: Add error-capture init warnings when needed
      drm/i915/guc: Add compute reglist for guc err capture
      drm/i915/guc: Fix GuC error capture sizing estimation and reporting
      drm/i915/guc: Remove intel_context:number_committed_requests counter

Andi Shyti (1):
      drm/i915/trace: Remove unused frequency trace

Andrzej Hajda (2):
      drm/i915: use intel_uncore_rmw when appropriate
      drm/i915/gt: use intel_uncore_rmw when appropriate

Aravind Iddamsetty (1):
      drm/i915/mtl: enable local stolen memory

Ashutosh Dixit (5):
      drm/i915/mtl: PERF_LIMIT_REASONS changes for MTL
      drm/i915/rps: Freq caps for MTL
      drm/i915: Perf_limit_reasons are only available for Gen11+
      drm/i915/hwmon: Expose card reactive critical power
      drm/i915/hwmon: Expose power1_max_interval

Chris Wilson (6):
      drm/i915/gt: Cleanup partial engine discovery failures
      drm/i915/gem: Really move i915_gem_context.link under ref protection
      drm/i915/gt: Restrict forced preemption to the active context
      drm/i915/gt: Use i915_vm_put on ppgtt_create error paths
      drm/i915/gt: Move scratch page into system memory on all platforms
      drm/i915/gt: Bump the reset-failure timeout to 60s

Colin Ian King (2):
      drm/i915/gem: remove redundant assignments to variable ret
      drm/i915/perf: remove redundant variable 'taken'

Dale B Stimson (4):
      drm/i915/hwmon: Add HWMON infrastructure
      drm/i915/hwmon: Power PL1 limit and TDP setting
      drm/i915/hwmon: Show device level energy usage
      drm/i915/hwmon: Extend power/energy for XEHPSDV

Daniele Ceraolo Spurio (7):
      drm/i915/pxp: load the pxp module when we have a gsc-loaded huc
      drm/i915/dg2: setup HuC loading via GSC
      drm/i915/huc: track delayed HuC load with a fence
      drm/i915/huc: stall media submission until HuC is loaded
      drm/i915/huc: better define HuC status getparam possible return values.
      drm/i915/huc: define gsc-compatible HuC fw for DG2
      drm/i915/huc: bump timeout for delayed load and reduce print verbosity

Gustavo Sousa (1):
      drm/i915/xelp: Add Wa_1806527549

Gwan-gyeong Mun (1):
      drm/i915/gt: Remove unused function prototype

Jani Nikula (1):
      drm/i915: move i915_coherent_map_type() to i915_gem_pages.c and un-inline

Janusz Krzysztofik (1):
      drm/i915/gem: Flush contexts on driver release

John Harrison (6):
      drm/i915/guc: Fix release build bug in 'remove log size module parameters'
      drm/i915/guc: Enable compute scheduling on DG2
      drm/i915/guc: Limit scheduling properties to avoid overflow
      drm/i915: Fix compute pre-emption w/a to apply to compute engines
      drm/i915: Make the heartbeat play nice with long pre-emption timeouts
      drm/i915: Improve long running compute w/a for GuC submission

Karolina Drobnik (1):
      i915/i915_gem_context: Remove debug message in i915_gem_context_create_ioctl

Lionel Landwerlin (1):
      drm/i915/perf: complete programming whitelisting for XEHPSDV

Lucas De Marchi (7):
      drm/i915: Add missing mask when reading GEN12_DSMBASE
      drm/i915: Split i915_gem_init_stolen()
      drm/i915/dgfx: Make failure to setup stolen non-fatal
      drm/i915: Noop lrc_init_wa_ctx() on recent/future platforms
      drm/i915: Fix __gen125_emit_bb_start() without WA
      drm/i915/gt: Document function to decode register state context
      drm/i915/gt: Fix platform prefix

Matt Atwood (1):
      drm/i915/dg2: introduce Wa_22015475538

Matt Roper (21):
      drm/i915/mtl: Add MTL forcewake support
      drm/i915: Split GAM and MSLICE steering
      drm/i915/mtl: Define engine context layouts
      drm/i915: Document and future-proof preemption control policy
      drm/i915/gen8: Create separate reg definitions for new MCR registers
      drm/i915/xehp: Create separate reg definitions for new MCR registers
      drm/i915/gt: Drop a few unused register definitions
      drm/i915/gt: Correct prefix on a few registers
      drm/i915/gt: Add intel_gt_mcr_multicast_rmw() operation
      drm/i915/xehp: Check for faults on primary GAM
      drm/i915/gt: Add intel_gt_mcr_wait_for_reg_fw()
      drm/i915: Define MCR registers explicitly
      drm/i915/gt: Always use MCR functions on multicast registers
      drm/i915/guc: Handle save/restore of MCR registers explicitly
      drm/i915/gt: Add MCR-specific workaround initializers
      drm/i915: Define multicast registers as a new type
      drm/i915/xelpg: Add multicast steering
      drm/i915/xelpmp: Add multicast steering for media GT
      drm/i915/pvc: Update forcewake domain for CCS register ranges
      drm/i915/xelpg: Fix write to MTL_MCR_SELECTOR
      drm/i915/mtl: Add missing steering table terminators

Matthew Auld (11):
      drm/i915/ttm: implement access_memory
      drm/i915: remove the TODO in pin_and_fence_fb_obj
      drm/i915/display: handle migration for dpt
      drm/i915: allow control over the flags when migrating
      drm/i915/display: consider DG2_RC_CCS_CC when migrating buffers
      drm/i915: check memory is mappable in read_from_page
      drm/i915: add back GEN12_BDSM_MASK
      drm/i915: restore stolen memory behaviour for DG2
      drm/i915: enable PS64 support for DG2
      drm/i915/uapi: expose GTT alignment
      Revert "drm/i915/uapi: expose GTT alignment"

Matthew Brost (1):
      drm/i915/guc: Delay disabling guc_id scheduling for better hysteresis

Nathan Chancellor (1):
      drm/i915: Fix CFI violations in gt_sysfs

Niranjana Vishwanathapura (1):
      drm/i915: Remove unwanted pointer unpacking

Nirmoy Das (5):
      drm/i915: Do not cleanup obj with NULL bo->resource
      drm/i915: Improve debug print in vm_fault_ttm
      drm/i915: Fix a potential UAF at device unload
      drm/i915: remove excessive i915_gem_drain_freed_objects
      drm/i915: Refactor ttm ghost obj detection

Prathap Kumar Valsan (1):
      drm/i915/gt: Flush to global observation point before breadcrumb write

Riana Tauro (4):
      drm/i915/guc/slpc: Run SLPC selftests on all tiles
      drm/i915/selftests: Add helper function measure_power
      drm/i915/guc/slpc: Add SLPC selftest live_slpc_power
      drm/i915/hwmon: Add HWMON current voltage support

Robert Beckett (1):
      drm/i915: stop abusing swiotlb_max_segment

Tejas Upadhyay (1):
      drm/i915/ehl: Update MOCS table for EHL

Thomas Hellström (1):
      drm/i915: Fix display problems after resume

Tilak Tangudu (1):
      drm/i915/debugfs: Add perf_limit_reasons in debugfs

Tomas Winkler (5):
      mei: add support to GSC extended header
      mei: bus: enable sending gsc commands
      mei: adjust extended header kdocs
      mei: pxp: support matching with a gfx discrete card
      drm/i915/pxp: add huc authentication and loading command

Tvrtko Ursulin (7):
      drm/i915: Make GEM resume all engines
      drm/i915: Make GEM suspend all GTs
      drm/i915: Handle all GTs on driver (un)load paths
      drm/i915/selftests: Remove flush_scheduled_work() from live_execlists
      Merge drm/drm-next into drm-intel-gt-next
      drm/i915/guc: Fix revocation of non-persistent contexts
      drm/i915/selftests: Stop using kthread_stop()

Umesh Nerlige Ramappa (14):
      drm/i915/perf: Fix OA filtering logic for GuC mode
      drm/i915/perf: Add 32-bit OAG and OAR formats for DG2
      drm/i915/perf: Fix noa wait predication for DG2
      drm/i915/perf: Determine gen12 oa ctx offset at runtime
      drm/i915/perf: Enable bytes per clock reporting in OA
      drm/i915/perf: Simply use stream->ctx
      drm/i915/perf: Move gt-specific data from i915->perf to gt->perf
      drm/i915/perf: Replace gt->perf.lock with stream->lock for file ops
      drm/i915/perf: Use gt-specific ggtt for OA and noa-wait buffers
      drm/i915/perf: Store a pointer to oa_format in oa_buffer
      drm/i915/perf: Add Wa_1508761755:dg2
      drm/i915/perf: Apply Wa_18013179988
      drm/i915/perf: Save/restore EU flex counters across reset
      drm/i915/perf: Enable OA for DG2

Ville Syrjälä (3):
      drm/i915: Extract intel_mmio_bar()
      drm/i915: Name our BARs based on the spec
      drm/i915: s/HAS_BAR2_SMEM_STOLEN/HAS_LMEMBAR_SMEM_STOLEN/

Vinay Belgaumkar (5):
      drm/i915: Add a wrapper for frequency debugfs
      drm/i915/slpc: Update the frequency debugfs
      drm/i915/slpc: Optmize waitboost for SLPC
      drm/i915/slpc: Use platform limits for min/max frequency
      drm/i915/guc: Support OA when Wa_16011777198 is enabled

Vitaly Lubart (3):
      mei: bus: extend bus API to support command streamer API
      mei: pxp: add command streamer API to the PXP driver
      drm/i915/pxp: implement function for sending tee stream command

 .../ABI/testing/sysfs-driver-intel-i915-hwmon      |  75 +++
 MAINTAINERS                                        |   1 +
 drivers/gpu/drm/i915/Kconfig.profile               |  26 +-
 drivers/gpu/drm/i915/Makefile                      |  14 +-
 drivers/gpu/drm/i915/display/intel_dpt.c           |   1 +
 drivers/gpu/drm/i915/display/intel_fb_pin.c        |  63 +-
 drivers/gpu/drm/i915/display/intel_lpe_audio.c     |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   5 -
 drivers/gpu/drm/i915/gem/i915_gem_internal.c       |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  49 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   8 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  12 +
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |  33 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         | 261 +++++---
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  78 ++-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |  18 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |   5 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    | 157 ++++-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  | 118 ++--
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |   1 +
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |  55 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |  12 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  92 +--
 drivers/gpu/drm/i915/gt/intel_context.c            |   5 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |  11 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   9 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   6 +
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          | 113 +++-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |  39 ++
 drivers/gpu/drm/i915/gt/intel_engine_regs.h        |   1 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  15 +
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  25 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  26 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |   4 +
 drivers/gpu/drm/i915/gt/intel_gsc.c                |  23 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 | 138 +++-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   1 +
 drivers/gpu/drm/i915/gt/intel_gt_mcr.c             | 305 ++++++++-
 drivers/gpu/drm/i915/gt/intel_gt_mcr.h             |  24 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      | 196 ++----
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            | 178 +++--
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c           |  15 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h           |   7 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        | 480 +++++++-------
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   6 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  43 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   3 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                | 143 +++-
 drivers/gpu/drm/i915/gt/intel_lrc.h                |   2 +
 drivers/gpu/drm/i915/gt/intel_migrate.c            |   1 +
 drivers/gpu/drm/i915/gt/intel_mocs.c               |  20 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   2 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                | 265 +++++++-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   3 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |   4 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 574 ++++++++++------
 drivers/gpu/drm/i915/gt/intel_workarounds_types.h  |   9 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  50 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  51 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |   1 +
 drivers/gpu/drm/i915/gt/selftest_rps.c             |  12 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            | 190 +++++-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |   2 +-
 drivers/gpu/drm/i915/gt/sysfs_engines.c            |  25 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |   1 +
 .../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h  |   9 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h      |   9 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  16 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  71 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     | 119 +++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c     |  61 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  12 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  43 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        | 103 +++
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h        |   4 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h  |   3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 358 ++++++++--
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             | 262 +++++++-
 drivers/gpu/drm/i915/gt/uc/intel_huc.h             |  31 +
 drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c          |  34 +
 drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h          |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  24 +-
 drivers/gpu/drm/i915/gvt/cfg_space.c               |   4 +-
 drivers/gpu/drm/i915/gvt/handlers.c                |   4 +-
 drivers/gpu/drm/i915/gvt/mmio_context.c            |  14 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   8 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  30 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  50 +-
 drivers/gpu/drm/i915/i915_getparam.c               |   3 +
 drivers/gpu/drm/i915/i915_gpu_error.c              |  12 +-
 drivers/gpu/drm/i915/i915_hwmon.c                  | 738 +++++++++++++++++++++
 drivers/gpu/drm/i915/i915_hwmon.h                  |  20 +
 drivers/gpu/drm/i915/i915_pci.c                    |   9 +-
 drivers/gpu/drm/i915/i915_perf.c                   | 582 ++++++++++++----
 drivers/gpu/drm/i915/i915_perf.h                   |   2 +
 drivers/gpu/drm/i915/i915_perf_oa_regs.h           |   6 +-
 drivers/gpu/drm/i915/i915_perf_types.h             |  47 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  22 +
 drivers/gpu/drm/i915/i915_reg_defs.h               |  27 +-
 drivers/gpu/drm/i915/i915_request.c                |  24 +
 drivers/gpu/drm/i915/i915_request.h                |   5 +
 drivers/gpu/drm/i915/i915_scatterlist.h            |  34 +-
 drivers/gpu/drm/i915/i915_selftest.h               |   2 +
 drivers/gpu/drm/i915/i915_trace.h                  |  15 -
 drivers/gpu/drm/i915/i915_vma.c                    |   9 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   3 +-
 drivers/gpu/drm/i915/intel_gvt_mmio_table.c        |   2 +-
 drivers/gpu/drm/i915/intel_mchbar_regs.h           |  21 +
 drivers/gpu/drm/i915/intel_pci_config.h            |  28 +-
 drivers/gpu/drm/i915/intel_pm.c                    | 205 +++---
 drivers/gpu/drm/i915/intel_uncore.c                | 280 +++++++-
 drivers/gpu/drm/i915/intel_uncore.h                |   2 +
 drivers/gpu/drm/i915/pxp/intel_pxp.c               |  32 +-
 drivers/gpu/drm/i915/pxp/intel_pxp.h               |  32 -
 drivers/gpu/drm/i915/pxp/intel_pxp_huc.c           |  69 ++
 drivers/gpu/drm/i915/pxp/intel_pxp_huc.h           |  13 +
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h           |   8 +
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c       |   8 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_session.h       |  11 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c           | 139 +++-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h           |   5 +
 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h |  23 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_types.h         |   6 +
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  10 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |  16 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      | 252 ++++---
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |   4 +
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |   1 -
 drivers/misc/mei/bus.c                             | 146 +++-
 drivers/misc/mei/client.c                          |  55 +-
 drivers/misc/mei/hbm.c                             |  13 +
 drivers/misc/mei/hw-me.c                           |   7 +-
 drivers/misc/mei/hw.h                              |  89 ++-
 drivers/misc/mei/interrupt.c                       |  47 +-
 drivers/misc/mei/mei_dev.h                         |   8 +
 drivers/misc/mei/pxp/mei_pxp.c                     |  38 +-
 include/drm/i915_pxp_tee_interface.h               |   5 +
 include/linux/mei_cl_bus.h                         |   6 +
 include/uapi/drm/i915_drm.h                        |  62 +-
 145 files changed, 6631 insertions(+), 2010 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
 create mode 100644 drivers/gpu/drm/i915/i915_hwmon.c
 create mode 100644 drivers/gpu/drm/i915/i915_hwmon.h
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_huc.c
 create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_huc.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-09-16  8:47 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2022-09-16  8:47 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

Here goes the final drm-intel-gt-next towards 6.1.

For stable platforms we have fixes for throttle reasons decoding to sysfs, GuC
version update to 7.5, XeHP SDV GSC support and the usual pile of smaller fixes.

DG2 and DG1 runtime PM is now mostly fixed for LMEM access via mmap, but kernel
internal usages still need to be reviewed. There's also at least one LMEM code
NULL deref bug to resolve [1]. Finally a bunch of Meteorlake (MTL) enabling
patches.

Note that this PR includes patches going to mei subsystem, due to the tight
coupling of the MEI/GSC code. Those are Acked-by Greg.

Regards, Joonas

[1] https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12135/bat-dg2-11/igt@gem_lmem_swapping@basic@lmem0.html

***

drm-intel-gt-next-2022-09-16:

Cross-subsystem Changes:

- MEI subsystem pieces for XeHP SDV GSC support
  These are Acked-by Greg.

Driver Changes:

- Release mmaps on RPM suspend on discrete GPUs (Anshuman)
- Update GuC version to 7.5 on DG1, DG2 and ADL
- Revert "drm/i915/dg2: extend Wa_1409120013 to DG2" (Lucas)
- MTL enabling incl. standalone media (Matt R, Lucas)
- Explicitly clear BB_OFFSET for new contexts on Gen8+ (Chris)
- Fix throttling / perf limit reason decoding (Ashutosh)
- XeHP SDV GSC support (Vitaly, Alexander, Tomas)

- Fix issues with overrding firmware file paths (John)
- Invert if-else ladders to check latest version first (Lucas)
- Cancel GuC engine busyness worker synchronously (Umesh)

- Skip applying copy engine fuses outside PVC (Lucas)
- Eliminate Gen10 frequency read function (Lucas)
- Static code checker fixes (Gaosheng)
- Selftest improvements (Chris)

The following changes since commit 04f7eb3d4582a0a4da67c86e55fda7de2df86d91:

  drm/i915: Set correct domains values at _i915_vma_move_to_active (2022-09-08 11:06:35 +0100)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-09-16

for you to fetch changes up to 8adc718881e0a70127f8843dd70e69a80de39352:

  drm/i915/uc: Update to latest GuC and use new-format GuC/HuC names (2022-09-15 18:43:33 -0700)

----------------------------------------------------------------
Cross-subsystem Changes:

- MEI subsystem pieces for XeHP SDV GSC support
  These are Acked-by Greg.

Driver Changes:

- Release mmaps on RPM suspend on discrete GPUs (Anshuman)
- Update GuC version to 7.5 on DG1, DG2 and ADL
- Revert "drm/i915/dg2: extend Wa_1409120013 to DG2" (Lucas)
- MTL enabling incl. standalone media (Matt R, Lucas)
- Explicitly clear BB_OFFSET for new contexts on Gen8+ (Chris)
- Fix throttling / perf limit reason decoding (Ashutosh)
- XeHP SDV GSC support (Vitaly, Alexander, Tomas)

- Fix issues with overrding firmware file paths (John)
- Invert if-else ladders to check latest version first (Lucas)
- Cancel GuC engine busyness worker synchronously (Umesh)

- Skip applying copy engine fuses outside PVC (Lucas)
- Eliminate Gen10 frequency read function (Lucas)
- Static code checker fixes (Gaosheng)
- Selftest improvements (Chris)

----------------------------------------------------------------
Alexander Usyskin (5):
      drm/i915/gsc: add slow_firmware flag to the gsc device definition
      drm/i915/gsc: add GSC XeHP SDV platform definition
      mei: gsc: wait for reset thread on stop
      mei: extend timeouts on slow devices
      mei: drop ready bits check after start

Anshuman Gupta (2):
      drm/i915: Refactor userfault_wakeref to re-use
      drm/i915/dgfx: Release mmap on rpm suspend

Ashutosh Dixit (1):
      drm/i915/gt: Fix perf limit reasons bit positions

Chris Wilson (4):
      drm/i915/gt: Explicitly clear BB_OFFSET for new contexts
      drm/i915/selftests: Check for incomplete LRI from the context image
      drm/i915/selftest: Always cancel semaphore on error
      drm/i915/selftest: Clear the output buffers before GPU writes

Gaosheng Cui (1):
      drm/i915: remove unused i915_gem_lmem_obj_ops declaration

John Harrison (2):
      drm/i915/uc: Fix issues with overriding firmware files
      drm/i915/uc: Update to latest GuC and use new-format GuC/HuC names

Lucas De Marchi (7):
      Revert "drm/i915/dg2: extend Wa_1409120013 to DG2"
      drm/i915/gt: Use MEDIA_VER() when handling media fuses
      drm/i915/gt: Extract function to apply media fuses
      drm/i915: Skip applying copy engine fuses
      drm/i915: Invert if/else ladder for frequency read
      drm/i915/gt: Extract per-platform function for frequency read
      drm/i915: Invert if/else ladder for stolen init

Matt Roper (14):
      drm/i915: Move locking and unclaimed check into mmio_debug_{suspend, resume}
      drm/i915: Only hook up uncore->debug for primary uncore
      drm/i915: Use managed allocations for extra uncore objects
      drm/i915: Drop intel_gt_tile_cleanup()
      drm/i915: Prepare more multi-GT initialization
      drm/i915: Rename and expose common GT early init routine
      drm/i915: Use a DRM-managed action to release the PCI bridge device
      drm/i915: Initialize MMIO access for each GT
      drm/i915: Handle each GT on init/release and suspend/resume
      drm/i915/uncore: Add GSI offset to uncore
      drm/i915/mtl: Add gsi_offset when emitting aux table invalidation
      drm/i915/xelpmp: Expose media as another GT
      drm/i915/mtl: Use primary GT's irq lock for media GT
      drm/i915/mtl: Hook up interrupts for standalone media

Tomas Winkler (7):
      mei: add kdoc for struct mei_aux_device
      mei: add slow_firmware flag to the mei auxiliary device
      mei: gsc: use polling instead of interrupts
      mei: mkhi: add memory ready command
      mei: gsc: setup gsc extended operational memory
      mei: debugfs: add pxp mode to devstate in debugfs
      drm/i915/gsc: allocate extended operational memory in LMEM

Umesh Nerlige Ramappa (1):
      drm/i915/guc: Cancel GuC engine busyness worker synchronously

Vitaly Lubart (3):
      drm/i915/gsc: skip irq initialization if using polling
      mei: bus: export common mkhi definitions into a separate header
      mei: gsc: add transition to PXP mode in resume flow

 drivers/gpu/drm/i915/Makefile                     |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_lmem.h          |   2 -
 drivers/gpu/drm/i915/gem/i915_gem_mman.c          |  23 ++-
 drivers/gpu/drm/i915/gem/i915_gem_mman.h          |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_object.c        |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h  |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c            |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c        |  51 ++-----
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c           |  36 ++++-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c          |  15 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h          |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c         | 156 ++++++++++---------
 drivers/gpu/drm/i915/gt/intel_engine_regs.h       |   1 +
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c      |   1 -
 drivers/gpu/drm/i915/gt/intel_gsc.c               | 106 +++++++++++--
 drivers/gpu/drm/i915/gt/intel_gsc.h               |   3 +
 drivers/gpu/drm/i915/gt/intel_gt.c                | 111 ++++++++++----
 drivers/gpu/drm/i915/gt/intel_gt.h                |   4 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c    | 174 ++++++++++------------
 drivers/gpu/drm/i915/gt/intel_gt_irq.c            |  35 ++++-
 drivers/gpu/drm/i915/gt/intel_gt_pm_irq.c         |   8 +-
 drivers/gpu/drm/i915/gt/intel_gt_regs.h           |  10 ++
 drivers/gpu/drm/i915/gt/intel_gt_types.h          |  36 ++++-
 drivers/gpu/drm/i915/gt/intel_gtt.h               |   3 -
 drivers/gpu/drm/i915/gt/intel_lrc.c               |  29 +++-
 drivers/gpu/drm/i915/gt/intel_rps.c               |  26 ++--
 drivers/gpu/drm/i915/gt/intel_sa_media.c          |  47 ++++++
 drivers/gpu/drm/i915/gt/intel_sa_media.h          |  15 ++
 drivers/gpu/drm/i915/gt/selftest_lrc.c            | 115 +++++++++++---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c            |  24 +--
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c |  11 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c             |   4 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c          |  30 +++-
 drivers/gpu/drm/i915/i915_driver.c                | 105 +++++++++----
 drivers/gpu/drm/i915/i915_drv.h                   |   5 +
 drivers/gpu/drm/i915/i915_gem.c                   |   6 +-
 drivers/gpu/drm/i915/i915_irq.c                   |   4 +-
 drivers/gpu/drm/i915/i915_pci.c                   |  14 ++
 drivers/gpu/drm/i915/i915_reg.h                   |  16 +-
 drivers/gpu/drm/i915/intel_device_info.h          |   3 +
 drivers/gpu/drm/i915/intel_pm.c                   |   5 +-
 drivers/gpu/drm/i915/intel_uncore.c               |  92 +++++++-----
 drivers/gpu/drm/i915/intel_uncore.h               |  40 ++++-
 drivers/gpu/drm/i915/pxp/intel_pxp.c              |   4 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c      |   4 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c          |  14 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c      |   4 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c  |   1 +
 drivers/misc/mei/bus-fixup.c                      | 106 ++++++++-----
 drivers/misc/mei/client.c                         |  16 +-
 drivers/misc/mei/debugfs.c                        |  19 ++-
 drivers/misc/mei/gsc-me.c                         |  77 ++++++++--
 drivers/misc/mei/hbm.c                            |  14 +-
 drivers/misc/mei/hw-me-regs.h                     |   9 +-
 drivers/misc/mei/hw-me.c                          | 138 ++++++++++++++---
 drivers/misc/mei/hw-me.h                          |  17 ++-
 drivers/misc/mei/hw-txe.c                         |   4 +-
 drivers/misc/mei/hw.h                             |   7 +-
 drivers/misc/mei/init.c                           |  35 +++--
 drivers/misc/mei/main.c                           |   4 +-
 drivers/misc/mei/mei_dev.h                        |  35 ++++-
 drivers/misc/mei/mkhi.h                           |  55 +++++++
 drivers/misc/mei/pci-me.c                         |   4 +-
 include/linux/mei_aux.h                           |  12 ++
 64 files changed, 1423 insertions(+), 534 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_sa_media.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_sa_media.h
 create mode 100644 drivers/misc/mei/mkhi.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-09-09 11:20 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2022-09-09 11:20 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

Here goes second drm-intel-gt-next PR towards 6.1.

As the top item we're now aligning the GuC/HuC firmware versioning
to meet the expectations recorded under firmware-usage-guidelines.rst.
A revert of a previous (incorrect) userspace register removal for DG2
and addition of new DG2 workaround. Reject suspend on DG2 on low
system memory condition.

Fix for Gitlab #6639 h264 hardware video decoding regression, GuC SLPC
improvements, PXP fix, ATS-M thread tuning settings and tiny bit of
Meteorlake enabling, 

Regards, Joonas

PS. Still not the top of drm-intel-gt-next as need your comments on
fixing(?) the Acked-by's on the MEI/GSC patches.

***

drm-intel-gt-next-2022-09-09:

UAPI Changes:

- Revert "drm/i915/dg2: Add preemption changes for Wa_14015141709"

  The intent of Wa_14015141709 was to inform us that userspace can no
  longer control object-level preemption as it has on past platforms
  (i.e., by twiddling register bit CS_CHICKEN1[0]).  The description of
  the workaround in the spec wasn't terribly well-written, and when we
  requested clarification from the hardware teams we were told that on the
  kernel side we should also probably stop setting
  FF_SLICE_CS_CHICKEN1[14], which is the register bit that directs the
  hardware to honor the settings in per-context register CS_CHICKEN1.  It
  turns out that this guidance about FF_SLICE_CS_CHICKEN1[14] was a
  mistake; even though CS_CHICKEN1[0] is non-operational and useless to
  userspace, there are other bits in the register that do still work and
  might need to be adjusted by userspace in the future (e.g., to implement
  other workarounds that show up).  If we don't set
  FF_SLICE_CS_CHICKEN1[14] in i915, then those future workarounds would
  not take effect.

  Even more details at:

  https://lists.freedesktop.org/archives/intel-gfx/2022-September/305478.html

Driver Changes:

- Align GuC/HuC firmware versioning scheme to kernel practices (John)
- Fix #6639: h264 hardware video decoding broken in 5.19 on Intel(R)
  Celeron(R) N3060 (Nirmoy)
- Meteorlake (MTL) enabling (Matt R)
- GuC SLPC improvements (Vinay, Rodrigo)
- Add thread execution tuning setting for ATS-M (Matt R)
- Don't start PXP without mei_pxp bind (Juston)
- Remove leftover verbose debug logging from GuC error capture (John)
- Abort suspend on low system memory conditions (Nirmoy, Matt A, Chris)
- Add DG2 Wa_16014892111 (Matt R)

- Rename ggtt_view as gtt_view (Niranjana)
- Consider HAS_FLAT_CCS() in needs_ccs_pages (Matt A)
- Don't try to disable host RPS when this was never enabled. (Rodrigo)
- Clear stalled GuC CT request after a reset (Daniele)
- Remove runtime info printing from GuC time stamp logging (Jani)
- Skip Bit12 fw domain reset for gen12+ (Sushma, Radhakrishna)

- Make GuC log sizes runtime configurable (John)
- Selftest improvements (Daniele, Matt B, Andrzej)

The following changes since commit 5ece208ab05e4042c80ed1e6fe6d7ce236eee89b:

  drm/i915/guc: Use streaming loads to speed up dumping the guc log (2022-08-17 10:07:03 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 04f7eb3d4582a0a4da67c86e55fda7de2df86d91:

  drm/i915: Set correct domains values at _i915_vma_move_to_active (2022-09-08 11:06:35 +0100)

----------------------------------------------------------------
UAPI Changes:

- Revert "drm/i915/dg2: Add preemption changes for Wa_14015141709"

  The intent of Wa_14015141709 was to inform us that userspace can no
  longer control object-level preemption as it has on past platforms
  (i.e., by twiddling register bit CS_CHICKEN1[0]).  The description of
  the workaround in the spec wasn't terribly well-written, and when we
  requested clarification from the hardware teams we were told that on the
  kernel side we should also probably stop setting
  FF_SLICE_CS_CHICKEN1[14], which is the register bit that directs the
  hardware to honor the settings in per-context register CS_CHICKEN1.  It
  turns out that this guidance about FF_SLICE_CS_CHICKEN1[14] was a
  mistake; even though CS_CHICKEN1[0] is non-operational and useless to
  userspace, there are other bits in the register that do still work and
  might need to be adjusted by userspace in the future (e.g., to implement
  other workarounds that show up).  If we don't set
  FF_SLICE_CS_CHICKEN1[14] in i915, then those future workarounds would
  not take effect.

  Even more details at:

  https://lists.freedesktop.org/archives/intel-gfx/2022-September/305478.html

Driver Changes:

- Align GuC/HuC firmware versioning scheme to kernel practices (John)
- Fix #6639: h264 hardware video decoding broken in 5.19 on Intel(R)
  Celeron(R) N3060 (Nirmoy)
- Meteorlake (MTL) enabling (Matt R)
- GuC SLPC improvements (Vinay, Rodrigo)
- Add thread execution tuning setting for ATS-M (Matt R)
- Don't start PXP without mei_pxp bind (Juston)
- Remove leftover verbose debug logging from GuC error capture (John)
- Abort suspend on low system memory conditions (Nirmoy, Matt A, Chris)
- Add DG2 Wa_16014892111 (Matt R)

- Rename ggtt_view as gtt_view (Niranjana)
- Consider HAS_FLAT_CCS() in needs_ccs_pages (Matt A)
- Don't try to disable host RPS when this was never enabled. (Rodrigo)
- Clear stalled GuC CT request after a reset (Daniele)
- Remove runtime info printing from GuC time stamp logging (Jani)
- Skip Bit12 fw domain reset for gen12+ (Sushma, Radhakrishna)

- Make GuC log sizes runtime configurable (John)
- Selftest improvements (Daniele, Matt B, Andrzej)

----------------------------------------------------------------
Andrzej Hajda (1):
      drm/i915/selftests: allow misaligned_pin test work with unmappable memory

Daniele Ceraolo Spurio (2):
      drm/i915/guc: skip scrub_ctbs selftest if reset is disabled
      drm/i915/guc: clear stalled request after a reset

Jani Nikula (1):
      drm/i915/guc: remove runtime info printing from time stamp logging

John Harrison (4):
      drm/i915/guc: Make GuC log sizes runtime configurable
      drm/i915/guc: Reduce spam from error capture
      drm/i915/uc: Support for version reduced and multiple firmware files
      drm/i915/uc: Add patch level version number support

Joonas Lahtinen (1):
      drm/i915/guc: Remove log size module parameters

Juston Li (1):
      drm/i915/pxp: don't start pxp without mei_pxp bind

Matt Roper (5):
      drm/i915/mtl: MMIO range is now 4MB
      drm/i915/mtl: Don't mask off CCS according to DSS fusing
      drm/i915/dg2: Incorporate Wa_16014892111 into DRAW_WATERMARK tuning
      Revert "drm/i915/dg2: Add preemption changes for Wa_14015141709"
      drm/i915/ats-m: Add thread execution tuning setting

Matthew Auld (2):
      Revert "drm/i915/guc: Add delay to disable scheduling after pin count goes to zero"
      drm/i915: consider HAS_FLAT_CCS() in needs_ccs_pages

Matthew Brost (2):
      drm/i915/selftests: Use correct selfest calls for live tests
      drm/i915/guc: Add delay to disable scheduling after pin count goes to zero

Niranjana Vishwanathapura (1):
      drm/i915: Rename ggtt_view as gtt_view

Nirmoy Das (2):
      drm/i915/ttm: Abort suspend on i915_ttm_backup failure
      drm/i915: Set correct domains values at _i915_vma_move_to_active

Radhakrishna Sripada (1):
      drm/i915: Skip Bit12 fw domain reset for gen12+

Rodrigo Vivi (3):
      drm/i915/slpc: Fix inconsistent locked return
      drm/i915/slpc: Let's fix the PCODE min freq table setup for SLPC
      drm/i915: Don't try to disable host RPS when this was never enabled.

Vinay Belgaumkar (1):
      drm/i915/guc/slpc: Allow SLPC to use efficient frequency

 drivers/gpu/drm/i915/display/intel_display.c       |   2 +-
 drivers/gpu/drm/i915/display/intel_display.h       |   2 +-
 drivers/gpu/drm/i915/display/intel_display_types.h |   2 +-
 drivers/gpu/drm/i915/display/intel_fb.c            |  18 +-
 drivers/gpu/drm/i915/display/intel_fb_pin.c        |   4 +-
 drivers/gpu/drm/i915/display/intel_fb_pin.h        |   4 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c         |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  16 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c         |   7 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |   2 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |   2 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |   6 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_object.c   |   2 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   2 +-
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |   2 +
 drivers/gpu/drm/i915/gt/intel_llc.c                |  19 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  21 +
 drivers/gpu/drm/i915/gt/intel_reset.c              |   2 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  60 ++-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   2 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  13 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            |   9 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  55 +--
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     |  81 ++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         | 175 +++++++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |  42 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |  86 +---
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  17 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |   8 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           | 462 ++++++++++++++-------
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |  39 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h       |   8 +-
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          |   3 +
 drivers/gpu/drm/i915/i915_debugfs.c                |  56 +--
 drivers/gpu/drm/i915/i915_drv.h                    |   7 +-
 drivers/gpu/drm/i915/i915_gem.c                    |   6 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  16 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   1 +
 drivers/gpu/drm/i915/i915_vma.c                    |  43 +-
 drivers/gpu/drm/i915/i915_vma.h                    |  18 +-
 drivers/gpu/drm/i915/i915_vma_types.h              |  42 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   1 +
 drivers/gpu/drm/i915/intel_mchbar_regs.h           |   3 +
 drivers/gpu/drm/i915/intel_uncore.c                |  18 +-
 drivers/gpu/drm/i915/pxp/intel_pxp.c               |  15 +
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   4 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |   2 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |   2 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |  70 ++--
 53 files changed, 937 insertions(+), 555 deletions(-)

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-08-24 12:01 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2022-08-24 12:01 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

Here goes the first drm-intel-gt-next PR towards 6.1. Quite a small one.

As primary things, there's the parallel support of GuC v69 and v70
which already went in via -fixes, improvements to the TLB invalidation
performance regressions, further DG2 enabling and improved debugging
for GuC errors.

On top of that, locking simplification for freeing objects to avoid
potential system freeze, addition of gt/gtN/.defaults (including freq
to start), silencing some messages that are not errors.

Regards, Joonas

PS. I left a few commits out from top of drm-intel-gt-next as there is fixup
needed for at least one. I will include those in the next PR.

***

drm-intel-gt-next-2022-08-24:

UAPI Changes:

- Create gt/gtN/.defaults/ for per gt sysfs defaults

  Create a gt/gtN/.defaults/ directory (similar to
  engine/<engine-name>/.defaults/) to expose default parameter values for
  each gt in sysfs. This allows userspace to restore default parameter values
  after they have changed.

Driver Changes:

- Support GuC v69 in parallel to v70 (Daniele)
- Improve TLB invalidation to limit performance regression (Chris, Mauro)
- Expose per-gt RPS defaults in sysfs (Ashutosh)
- Suppress OOM warning for shmemfs object allocation failure (Chris, Nirmoy)
- Disable PCI resize on 32-bit machines (Nirmoy)
- Update DG2 to GuC v70.4.1 (John)
- Fix CCS data copying on DG2 during swapping (Matt A)
- Add DG2 performance tuning setting recommended by spec (Matt R)
- Add GuC <-> kernel time stamp translation information to error logs (John)
- Record GuC CTB info in error logs (John)

- Route semaphores to GuC for Gen12+ when enabled (Michal Wi, John)
- Improve resilency to bug #3575: Handle reset timeouts under unrelated kernel hangs (Chris, Ashutosh)
- Avoid system freeze by removing shared locking on freeing objects (Chris, Nirmoy)
- Demote GuC error "No response for request" into debug when expected (Zhanjun)
- Fix GuC capture size warning and bump the size (John)
- Use streaming loads to speed up dumping the GuC log (Chris, John)
- Don't abort on CTB_UNUSED status from GuC (John)
- Don't send spurious policy update for GuC child contexts (Daniele)
- Don't leak the CCS state (Matt A)

- Prefer drm_err over pr_err (John)
- Eliminate unused calc_ctrl_surf_instr_size (Matt A)
- Add dedicated function for non-ctx register tuning settings (Matt R)
- Style and typo fixes, documentation improvements (Jason Wang, Mauro)
- Selftest improvements (Matt B, Rahul, John)

The following changes since commit 17cd10a44a8962860ff4ba351b2a290e752dbbde:

  drm/i915: Add lmem_bar_size modparam (2022-07-13 17:47:51 +0100)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-08-24

for you to fetch changes up to 5ece208ab05e4042c80ed1e6fe6d7ce236eee89b:

  drm/i915/guc: Use streaming loads to speed up dumping the guc log (2022-08-17 10:07:03 -0700)

----------------------------------------------------------------
UAPI Changes:

- Create gt/gtN/.defaults/ for per gt sysfs defaults

  Create a gt/gtN/.defaults/ directory (similar to
  engine/<engine-name>/.defaults/) to expose default parameter values for
  each gt in sysfs. This allows userspace to restore default parameter values
  after they have changed.

Driver Changes:

- Support GuC v69 in parallel to v70 (Daniele)
- Improve TLB invalidation to limit performance regression (Chris, Mauro)
- Expose per-gt RPS defaults in sysfs (Ashutosh)
- Suppress OOM warning for shmemfs object allocation failure (Chris, Nirmoy)
- Disable PCI resize on 32-bit machines (Nirmoy)
- Update DG2 to GuC v70.4.1 (John)
- Fix CCS data copying on DG2 during swapping (Matt A)
- Add DG2 performance tuning setting recommended by spec (Matt R)
- Add GuC <-> kernel time stamp translation information to error logs (John)
- Record GuC CTB info in error logs (John)

- Route semaphores to GuC for Gen12+ when enabled (Michal Wi, John)
- Improve resilency to bug #3575: Handle reset timeouts under unrelated kernel hangs (Chris, Ashutosh)
- Avoid system freeze by removing shared locking on freeing objects (Chris, Nirmoy)
- Demote GuC error "No response for request" into debug when expected (Zhanjun)
- Fix GuC capture size warning and bump the size (John)
- Use streaming loads to speed up dumping the GuC log (Chris, John)
- Don't abort on CTB_UNUSED status from GuC (John)
- Don't send spurious policy update for GuC child contexts (Daniele)
- Don't leak the CCS state (Matt A)

- Prefer drm_err over pr_err (John)
- Eliminate unused calc_ctrl_surf_instr_size (Matt A)
- Add dedicated function for non-ctx register tuning settings (Matt R)
- Style and typo fixes, documentation improvements (Jason Wang, Mauro)
- Selftest improvements (Matt B, Rahul, John)

----------------------------------------------------------------
Alan Previn (1):
      drm/i915/guc: Add a helper for log buffer size

Ashutosh Dixit (2):
      drm/i915/gt: Create gt/gtN/.defaults/ for per gt sysfs defaults
      drm/i915/gt: Expose per-gt RPS defaults in sysfs

Chris Wilson (8):
      drm/i915/reset: Handle reset timeouts under unrelated kernel hangs
      drm/i915: Suppress oom warning for shmemfs object allocation failure
      drm/i915/gt: Ignore TLB invalidations on idle engines
      drm/i915/gt: Invalidate TLB of the OA unit at TLB invalidations
      drm/i915/gt: Skip TLB invalidations once wedged
      drm/i915/gt: Batch TLB invalidations
      drm/i915/gem: Remove shared locking on freeing objects
      drm/i915/guc: Use streaming loads to speed up dumping the guc log

Daniele Ceraolo Spurio (2):
      drm/i915/guc: support v69 in parallel to v70
      drm/i915/guc: Don't send policy update for child contexts.

Harish Chegondi (1):
      drm/i915/dg2: Add Wa_1509727124

Jason Wang (2):
      drm/i915/gt: Remove unneeded semicolon
      drm/i915/selftests: Fix comment typo

John Harrison (7):
      drm/i915/guc: Don't use pr_err when not necessary
      drm/i915/selftest: Cope with not having an RCS engine
      drm/i915/guc: Don't abort on CTB_UNUSED status
      drm/i915/dg2: Update DG2 to GuC v70.4.1
      drm/i915/guc: Fix capture size warning and bump the size
      drm/i915/guc: Add GuC <-> kernel time stamp translation information
      drm/i915/guc: Record CTB info in error logs

Matt Roper (2):
      drm/i915/gt: Add dedicated function for non-ctx register tuning settings
      drm/i915/dg2: Add additional tuning settings

Matthew Auld (3):
      drm/i915/ttm: don't leak the ccs state
      drm/i915/ttm: remove calc_ctrl_surf_instr_size
      drm/i915/ttm: fix CCS handling

Matthew Brost (2):
      drm/i915/guc: Fix issues with live_preempt_cancel
      drm/i915/guc: Support larger contexts on newer hardware

Mauro Carvalho Chehab (3):
      drm/i915/gt: document with_intel_gt_pm_if_awake()
      drm/i915/gt: describe the new tlb parameter at i915_vma_resource
      drm/i915: pass a pointer for tlb seqno at vma_invalidate_tlb()

Michał Winiarski (1):
      drm/i915/guc: Route semaphores to GuC for Gen12+

Nirmoy Das (1):
      drm/i915: disable pci resize on 32-bit machine

Rahul Kumar Singh (1):
      drm/i915/guc: Add selftest for a hung GuC

Zhanjun Dong (1):
      drm/i915/guc: Check for ct enabled while waiting for response

 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  16 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  25 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   6 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |  11 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  77 +++-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |  12 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.h              |  11 +
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |  11 +
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c           |  10 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h           |   6 +
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        |  34 ++
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |  27 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            | 104 +++---
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   8 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   4 +
 drivers/gpu/drm/i915/gt/intel_reset.c              |   6 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  76 ++--
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  16 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  12 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |   3 +
 .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h |   8 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  19 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   7 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     |  40 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h     |   1 -
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |  45 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  45 +++
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |  79 +++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |   4 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |   4 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |  12 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 393 ++++++++++++++++-----
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  68 +++-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   7 +
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          |  37 +-
 .../gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c    | 159 +++++++++
 .../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c    |  10 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   4 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  67 +++-
 drivers/gpu/drm/i915/i915_gpu_error.h              |  21 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  33 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   1 +
 drivers/gpu/drm/i915/i915_vma_resource.c           |   9 +-
 drivers/gpu/drm/i915/i915_vma_resource.h           |   6 +-
 .../gpu/drm/i915/selftests/i915_live_selftests.h   |   1 +
 drivers/gpu/drm/i915/selftests/i915_request.c      |   2 +-
 49 files changed, 1227 insertions(+), 345 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2022-07-13 21:31 Rodrigo Vivi
@ 2022-07-21 15:06 ` Vivi, Rodrigo
  0 siblings, 0 replies; 37+ messages in thread
From: Vivi, Rodrigo @ 2022-07-21 15:06 UTC (permalink / raw)
  To: daniel.vetter, airlied
  Cc: tvrtko.ursulin, dim-tools, intel-gfx, dri-devel, tzimmermann

On Wed, 2022-07-13 at 17:31 -0400, Rodrigo Vivi wrote:
> Hi Dave and Daniel,
> 
> On behalf of Tvrtko, who is recovering from Covid,
> here goes the latest drm-intel-gt-next pull request
> targeting 5.20.

Hi Folks,

any particular issue with this pull request?

We just realized it is not yet part of the drm-next.


Thanks,
Rodrigo.

> 
> Thanks,
> Rodrigo.
> 
> Driver uAPI changes:
> - All related to the Small BAR support: (and all by Matt Auld)
>  * add probed_cpu_visible_size
>  * expose the avail memory region tracking
>  * apply ALLOC_GPU only by default
>  * add NEEDS_CPU_ACCESS hint
>  * tweak error capture on recoverable contexts
> 
> Driver highlights:
> - Add Small BAR support (Matt)
> - Add MeteorLake support (RK)
> - Add support for LMEM PCIe resizable BAR (Akeem)
> 
> Driver important fixes:
> - ttm related fixes (Matt Auld)
> - Fix a performance regression related to waitboost (Chris)
> - Fix GT resets (Chris)
> 
> Driver others:
> - Adding GuC SLPC selftest (Vinay)
> - Fix ADL-N GuC load (Daniele)
> - Add platform workaround (Gustavo, Matt Roper)
> - DG2 and ATS-M device ID updates (Matt Roper)
> - Add VM_BIND doc rfc with uAPI documentation (Niranjana)
> - Fix user-after-free in vma destruction (Thomas)
> - Async flush of GuC log regions (Alan)
> - Fixes in selftests (Chris, Dan, Andrzej)
> - Convert to drm_dbg (Umesh)
> - Disable OA sseu config param for newer hardware (Umesh)
> - Multi-cast register steering changes (Matt Roper)
> - Add lmem_bar_size modparam (Priyanka)
> 
> Thanks,
> Rodrigo.
> 
> The following changes since commit
> a06968563775181690125091f470a8655742dcbf:
> 
>   drm/i915: Fix a lockdep warning at error capture (2022-06-29
> 14:52:50 +0530)
> 
> are available in the Git repository at:
> 
>   git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-
> 2022-07-13
> 
> for you to fetch changes up to
> 17cd10a44a8962860ff4ba351b2a290e752dbbde:
> 
>   drm/i915: Add lmem_bar_size modparam (2022-07-13 17:47:51 +0100)
> 
> ----------------------------------------------------------------
> Driver uAPI changes:
> - All related to the Small BAR support: (and all by Matt Auld)
>  * add probed_cpu_visible_size
>  * expose the avail memory region tracking
>  * apply ALLOC_GPU only by default
>  * add NEEDS_CPU_ACCESS hint
>  * tweak error capture on recoverable contexts
> 
> Driver highlights:
> - Add Small BAR support (Matt)
> - Add MeteorLake support (RK)
> - Add support for LMEM PCIe resizable BAR (Akeem)
> 
> Driver important fixes:
> - ttm related fixes (Matt Auld)
> - Fix a performance regression related to waitboost (Chris)
> - Fix GT resets (Chris)
> 
> Driver others:
> - Adding GuC SLPC selftest (Vinay)
> - Fix ADL-N GuC load (Daniele)
> - Add platform workaround (Gustavo, Matt Roper)
> - DG2 and ATS-M device ID updates (Matt Roper)
> - Add VM_BIND doc rfc with uAPI documentation (Niranjana)
> - Fix user-after-free in vma destruction (Thomas)
> - Async flush of GuC log regions (Alan)
> - Fixes in selftests (Chris, Dan, Andrzej)
> - Convert to drm_dbg (Umesh)
> - Disable OA sseu config param for newer hardware (Umesh)
> - Multi-cast register steering changes (Matt Roper)
> - Add lmem_bar_size modparam (Priyanka)
> 
> ----------------------------------------------------------------
> Akeem G Abodunrin (1):
>       drm/i915: Add support for LMEM PCIe resizable bar
> 
> Alan Previn (1):
>       drm/i915/guc: Asynchronous flush of GuC log regions
> 
> Andrzej Hajda (1):
>       drm/i915/selftests: fix subtraction overflow bug
> 
> Chris Wilson (6):
>       drm/i915/selftests: Grab the runtime pm in shrink_thp
>       drm/i915/gt: Serialize GRDOM access between multiple engine
> resets
>       drm/i915/gt: Serialize TLB invalidates with GT resets
>       drm/i915/gem: Look for waitboosting across the whole object
> prior to individual waits
>       drm/i915: Bump GT idling delay to 2 jiffies
>       drm/i915/gt: Only kick the signal worker if there's been an
> update
> 
> Dan Carpenter (1):
>       drm/i915/selftests: fix a couple IS_ERR() vs NULL tests
> 
> Daniele Ceraolo Spurio (1):
>       drm/i915/guc: ADL-N should use the same GuC FW as ADL-S
> 
> Gustavo Sousa (1):
>       drm/i915/pvc: Implement w/a 16016694945
> 
> Matt Roper (4):
>       drm/i915: DG2 and ATS-M device ID updates
>       drm/i915/gt: Add general DSS steering iterator to intel_gt_mcr
>       drm/i915/dg2: Add Wa_15010599737
>       drm/i915: Correct ss -> steering calculation for pre-Xe_HP
> platforms
> 
> Matthew Auld (15):
>       drm/doc: add rfc section for small BAR uapi
>       drm/i915/uapi: add probed_cpu_visible_size
>       drm/i915/uapi: expose the avail tracking
>       drm/i915: remove intel_memory_region avail
>       drm/i915/uapi: apply ALLOC_GPU_ONLY by default
>       drm/i915/uapi: add NEEDS_CPU_ACCESS hint
>       drm/i915/error: skip non-mappable pages
>       drm/i915/uapi: tweak error capture on recoverable contexts
>       drm/i915/selftests: skip the mman tests for stolen
>       drm/i915/selftests: ensure we reserve a fence slot
>       drm/i915/ttm: handle blitter failure on DG2
>       drm/i915/ttm: disallow CPU fallback mode for ccs pages
>       drm/i915: turn on small BAR support
>       drm/i915/ttm: fix sg_table construction
>       drm/i915/ttm: fix 32b build
> 
> Niranjana Vishwanathapura (3):
>       drm/doc/rfc: VM_BIND feature design document
>       drm/i915: Update i915 uapi documentation
>       drm/doc/rfc: VM_BIND uapi definition
> 
> Priyanka Dandamudi (1):
>       drm/i915: Add lmem_bar_size modparam
> 
> Radhakrishna Sripada (2):
>       drm/i915/mtl: Add MeteorLake platform info
>       drm/i915/mtl: Add MeteorLake PCI IDs
> 
> Thomas Hellström (1):
>       drm/i915: Fix vm use-after-free in vma destruction
> 
> Umesh Nerlige Ramappa (2):
>       i915/perf: Replace DRM_DEBUG with driver specific drm_dbg call
>       i915/perf: Disable OA sseu config param for gfx12.50+
> 
> Vinay Belgaumkar (1):
>       drm/i915/guc/slpc: Add a new SLPC selftest
> 
>  Documentation/gpu/rfc/i915_small_bar.h             | 189 +++++++++++
>  Documentation/gpu/rfc/i915_small_bar.rst           |  47 +++
>  Documentation/gpu/rfc/i915_vm_bind.h               | 291
> ++++++++++++++++
>  Documentation/gpu/rfc/i915_vm_bind.rst             | 245
> ++++++++++++++
>  Documentation/gpu/rfc/index.rst                    |   8 +
>  drivers/gpu/drm/i915/gem/i915_gem_create.c         |  20 +-
>  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  15 +-
>  drivers/gpu/drm/i915/gem/i915_gem_object.c         |  47 +++
>  drivers/gpu/drm/i915/gem/i915_gem_object.h         |   3 +
>  drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  18 +
>  drivers/gpu/drm/i915/gem/i915_gem_region.c         |   2 +
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  55 +--
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |   3 +
>  drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       |  99 +++++-
>  drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h       |   1 +
>  drivers/gpu/drm/i915/gem/i915_gem_wait.c           |  34 ++
>  drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |   7 +-
>  .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  | 141 ++++++--
>  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  87 ++++-
>  drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |   3 +-
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  34 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h       |  22 --
>  drivers/gpu/drm/i915/gt/intel_gt.c                 |  15 +-
>  drivers/gpu/drm/i915/gt/intel_gt_mcr.c             |  25 ++
>  drivers/gpu/drm/i915/gt/intel_gt_mcr.h             |  24 ++
>  drivers/gpu/drm/i915/gt/intel_gt_regs.h            |   7 +
>  drivers/gpu/drm/i915/gt/intel_region_lmem.c        | 109 +++++-
>  drivers/gpu/drm/i915/gt/intel_reset.c              |  37 +-
>  drivers/gpu/drm/i915/gt/intel_workarounds.c        |   6 +
>  drivers/gpu/drm/i915/gt/selftest_lrc.c             |   8 +-
>  drivers/gpu/drm/i915/gt/selftest_slpc.c            | 323 +++++++++--
> -------
>  drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     |  16 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |   2 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |   9 +
>  drivers/gpu/drm/i915/i915_active.c                 |   2 +-
>  drivers/gpu/drm/i915/i915_drv.h                    |   5 +
>  drivers/gpu/drm/i915/i915_gpu_error.c              |  42 +--
>  drivers/gpu/drm/i915/i915_params.c                 |   2 +
>  drivers/gpu/drm/i915/i915_params.h                 |   1 +
>  drivers/gpu/drm/i915/i915_pci.c                    |  28 +-
>  drivers/gpu/drm/i915/i915_perf.c                   | 158 ++++++---
>  drivers/gpu/drm/i915/i915_query.c                  |  16 +-
>  drivers/gpu/drm/i915/i915_scatterlist.c            |  27 +-
>  drivers/gpu/drm/i915/i915_scatterlist.h            |   6 +-
>  drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  31 +-
>  drivers/gpu/drm/i915/i915_ttm_buddy_manager.h      |   3 +
>  drivers/gpu/drm/i915/i915_vma.c                    |  37 +-
>  drivers/gpu/drm/i915/intel_device_info.c           |  17 +
>  drivers/gpu/drm/i915/intel_device_info.h           |   5 +
>  drivers/gpu/drm/i915/intel_memory_region.c         |  18 +-
>  drivers/gpu/drm/i915/intel_memory_region.h         |   4 +-
>  drivers/gpu/drm/i915/intel_region_ttm.c            |  10 +-
>  drivers/gpu/drm/i915/intel_region_ttm.h            |   3 +-
>  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   2 +-
>  .../gpu/drm/i915/selftests/intel_memory_region.c   |  21 +-
>  drivers/gpu/drm/i915/selftests/mock_region.c       |   3 +-
>  include/drm/i915_pciids.h                          |  39 ++-
>  include/uapi/drm/i915_drm.h                        | 371
> ++++++++++++++++-----
>  58 files changed, 2281 insertions(+), 522 deletions(-)
>  create mode 100644 Documentation/gpu/rfc/i915_small_bar.h
>  create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst
>  create mode 100644 Documentation/gpu/rfc/i915_vm_bind.h
>  create mode 100644 Documentation/gpu/rfc/i915_vm_bind.rst


^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-07-13 21:31 Rodrigo Vivi
  2022-07-21 15:06 ` Vivi, Rodrigo
  0 siblings, 1 reply; 37+ messages in thread
From: Rodrigo Vivi @ 2022-07-13 21:31 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave and Daniel,

On behalf of Tvrtko, who is recovering from Covid,
here goes the latest drm-intel-gt-next pull request
targeting 5.20.

Thanks,
Rodrigo.

Driver uAPI changes:
- All related to the Small BAR support: (and all by Matt Auld)
 * add probed_cpu_visible_size
 * expose the avail memory region tracking
 * apply ALLOC_GPU only by default
 * add NEEDS_CPU_ACCESS hint
 * tweak error capture on recoverable contexts

Driver highlights:
- Add Small BAR support (Matt)
- Add MeteorLake support (RK)
- Add support for LMEM PCIe resizable BAR (Akeem)

Driver important fixes:
- ttm related fixes (Matt Auld)
- Fix a performance regression related to waitboost (Chris)
- Fix GT resets (Chris)

Driver others:
- Adding GuC SLPC selftest (Vinay)
- Fix ADL-N GuC load (Daniele)
- Add platform workaround (Gustavo, Matt Roper)
- DG2 and ATS-M device ID updates (Matt Roper)
- Add VM_BIND doc rfc with uAPI documentation (Niranjana)
- Fix user-after-free in vma destruction (Thomas)
- Async flush of GuC log regions (Alan)
- Fixes in selftests (Chris, Dan, Andrzej)
- Convert to drm_dbg (Umesh)
- Disable OA sseu config param for newer hardware (Umesh)
- Multi-cast register steering changes (Matt Roper)
- Add lmem_bar_size modparam (Priyanka)

Thanks,
Rodrigo.

The following changes since commit a06968563775181690125091f470a8655742dcbf:

  drm/i915: Fix a lockdep warning at error capture (2022-06-29 14:52:50 +0530)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-07-13

for you to fetch changes up to 17cd10a44a8962860ff4ba351b2a290e752dbbde:

  drm/i915: Add lmem_bar_size modparam (2022-07-13 17:47:51 +0100)

----------------------------------------------------------------
Driver uAPI changes:
- All related to the Small BAR support: (and all by Matt Auld)
 * add probed_cpu_visible_size
 * expose the avail memory region tracking
 * apply ALLOC_GPU only by default
 * add NEEDS_CPU_ACCESS hint
 * tweak error capture on recoverable contexts

Driver highlights:
- Add Small BAR support (Matt)
- Add MeteorLake support (RK)
- Add support for LMEM PCIe resizable BAR (Akeem)

Driver important fixes:
- ttm related fixes (Matt Auld)
- Fix a performance regression related to waitboost (Chris)
- Fix GT resets (Chris)

Driver others:
- Adding GuC SLPC selftest (Vinay)
- Fix ADL-N GuC load (Daniele)
- Add platform workaround (Gustavo, Matt Roper)
- DG2 and ATS-M device ID updates (Matt Roper)
- Add VM_BIND doc rfc with uAPI documentation (Niranjana)
- Fix user-after-free in vma destruction (Thomas)
- Async flush of GuC log regions (Alan)
- Fixes in selftests (Chris, Dan, Andrzej)
- Convert to drm_dbg (Umesh)
- Disable OA sseu config param for newer hardware (Umesh)
- Multi-cast register steering changes (Matt Roper)
- Add lmem_bar_size modparam (Priyanka)

----------------------------------------------------------------
Akeem G Abodunrin (1):
      drm/i915: Add support for LMEM PCIe resizable bar

Alan Previn (1):
      drm/i915/guc: Asynchronous flush of GuC log regions

Andrzej Hajda (1):
      drm/i915/selftests: fix subtraction overflow bug

Chris Wilson (6):
      drm/i915/selftests: Grab the runtime pm in shrink_thp
      drm/i915/gt: Serialize GRDOM access between multiple engine resets
      drm/i915/gt: Serialize TLB invalidates with GT resets
      drm/i915/gem: Look for waitboosting across the whole object prior to individual waits
      drm/i915: Bump GT idling delay to 2 jiffies
      drm/i915/gt: Only kick the signal worker if there's been an update

Dan Carpenter (1):
      drm/i915/selftests: fix a couple IS_ERR() vs NULL tests

Daniele Ceraolo Spurio (1):
      drm/i915/guc: ADL-N should use the same GuC FW as ADL-S

Gustavo Sousa (1):
      drm/i915/pvc: Implement w/a 16016694945

Matt Roper (4):
      drm/i915: DG2 and ATS-M device ID updates
      drm/i915/gt: Add general DSS steering iterator to intel_gt_mcr
      drm/i915/dg2: Add Wa_15010599737
      drm/i915: Correct ss -> steering calculation for pre-Xe_HP platforms

Matthew Auld (15):
      drm/doc: add rfc section for small BAR uapi
      drm/i915/uapi: add probed_cpu_visible_size
      drm/i915/uapi: expose the avail tracking
      drm/i915: remove intel_memory_region avail
      drm/i915/uapi: apply ALLOC_GPU_ONLY by default
      drm/i915/uapi: add NEEDS_CPU_ACCESS hint
      drm/i915/error: skip non-mappable pages
      drm/i915/uapi: tweak error capture on recoverable contexts
      drm/i915/selftests: skip the mman tests for stolen
      drm/i915/selftests: ensure we reserve a fence slot
      drm/i915/ttm: handle blitter failure on DG2
      drm/i915/ttm: disallow CPU fallback mode for ccs pages
      drm/i915: turn on small BAR support
      drm/i915/ttm: fix sg_table construction
      drm/i915/ttm: fix 32b build

Niranjana Vishwanathapura (3):
      drm/doc/rfc: VM_BIND feature design document
      drm/i915: Update i915 uapi documentation
      drm/doc/rfc: VM_BIND uapi definition

Priyanka Dandamudi (1):
      drm/i915: Add lmem_bar_size modparam

Radhakrishna Sripada (2):
      drm/i915/mtl: Add MeteorLake platform info
      drm/i915/mtl: Add MeteorLake PCI IDs

Thomas Hellström (1):
      drm/i915: Fix vm use-after-free in vma destruction

Umesh Nerlige Ramappa (2):
      i915/perf: Replace DRM_DEBUG with driver specific drm_dbg call
      i915/perf: Disable OA sseu config param for gfx12.50+

Vinay Belgaumkar (1):
      drm/i915/guc/slpc: Add a new SLPC selftest

 Documentation/gpu/rfc/i915_small_bar.h             | 189 +++++++++++
 Documentation/gpu/rfc/i915_small_bar.rst           |  47 +++
 Documentation/gpu/rfc/i915_vm_bind.h               | 291 ++++++++++++++++
 Documentation/gpu/rfc/i915_vm_bind.rst             | 245 ++++++++++++++
 Documentation/gpu/rfc/index.rst                    |   8 +
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |  20 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  15 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  47 +++
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  18 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |   2 +
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  55 +--
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       |  99 +++++-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h       |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_wait.c           |  34 ++
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |   7 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  | 141 ++++++--
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  87 ++++-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  34 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  22 --
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  15 +-
 drivers/gpu/drm/i915/gt/intel_gt_mcr.c             |  25 ++
 drivers/gpu/drm/i915/gt/intel_gt_mcr.h             |  24 ++
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |   7 +
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        | 109 +++++-
 drivers/gpu/drm/i915/gt/intel_reset.c              |  37 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   6 +
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   8 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            | 323 +++++++++---------
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     |  16 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |   2 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |   9 +
 drivers/gpu/drm/i915/i915_active.c                 |   2 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   5 +
 drivers/gpu/drm/i915/i915_gpu_error.c              |  42 +--
 drivers/gpu/drm/i915/i915_params.c                 |   2 +
 drivers/gpu/drm/i915/i915_params.h                 |   1 +
 drivers/gpu/drm/i915/i915_pci.c                    |  28 +-
 drivers/gpu/drm/i915/i915_perf.c                   | 158 ++++++---
 drivers/gpu/drm/i915/i915_query.c                  |  16 +-
 drivers/gpu/drm/i915/i915_scatterlist.c            |  27 +-
 drivers/gpu/drm/i915/i915_scatterlist.h            |   6 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  31 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h      |   3 +
 drivers/gpu/drm/i915/i915_vma.c                    |  37 +-
 drivers/gpu/drm/i915/intel_device_info.c           |  17 +
 drivers/gpu/drm/i915/intel_device_info.h           |   5 +
 drivers/gpu/drm/i915/intel_memory_region.c         |  18 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |   4 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |  10 +-
 drivers/gpu/drm/i915/intel_region_ttm.h            |   3 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   2 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  21 +-
 drivers/gpu/drm/i915/selftests/mock_region.c       |   3 +-
 include/drm/i915_pciids.h                          |  39 ++-
 include/uapi/drm/i915_drm.h                        | 371 ++++++++++++++++-----
 58 files changed, 2281 insertions(+), 522 deletions(-)
 create mode 100644 Documentation/gpu/rfc/i915_small_bar.h
 create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst
 create mode 100644 Documentation/gpu/rfc/i915_vm_bind.h
 create mode 100644 Documentation/gpu/rfc/i915_vm_bind.rst

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-06-29 10:45 Tvrtko Ursulin
  0 siblings, 0 replies; 37+ messages in thread
From: Tvrtko Ursulin @ 2022-06-29 10:45 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave, Daniel,

This is the first pull request for 5.20 merge window.

A lot of fixes across the board, a few improvements and quite a lot of driver
refactoring to prepare for Ponte Vecchio, and then a bunch of Ponte Vecchio
early enablement on top.

In terms of improvements, we now enable huge pages on Icelake and above
regardless of the IOMMU status. This is after confirming with hardware
architects and measuring the performance regression which we had on older
platforms is gone.

Resume speed on modern integrated platforms has also been improved with around
100ms improvement measured.

DG2 has gained HuC support and some new workarounds.

In terms of fixes, the headline ones are:

* Driver load on DG2 small BAR configurations has been fixed to not crash.

* GuC backend has fixed the EU scheduling priority for DG2 and in general fixed
  reset handling, improved error capture and optimised performance of querying
  engine busyness.

* Rendering corruption on Haswell and older platforms caused by some recent
  refactoring has also been fixed, as was the dma_resv handling in the
  relatively new multi-batch execbuf code.

* Temporary and unintended relaxation of the persistent contexts handling in the
  protocontext code has been fixed up before it hopefully "escaped" into the
  wild.

* Reset handling on Icelake and above has been improved with a new workaround
  which should improve the stability in some corner cases.

* Processes which use non-persistent context and abruptly exit will now be
  allowed to exit gracefuly without triggering resets and error capture in the
  logs.

* A bunch more as mentioned in the tag summary.

On the uapi front we have deprecation of some legacy get params on Xe_HP+ and
media block frequency control exposed in per gt sysfs.

Outside i915 we have a rename in the intel-gtt module and one cross-merge from
drm-intel-next.

Regards,

Tvrtko

drm-intel-gt-next-2022-06-29:
UAPI Changes:

- Expose per tile media freq factor in sysfs (Ashutosh Dixit, Dale B Stimson)
- Document memory residency and Flat-CCS capability of obj (Ramalingam C)
- Disable GETPARAM lookups of I915_PARAM_[SUB]SLICE_MASK on Xe_HP+ (Matt Roper)

Cross-subsystem Changes:

- Rename intel-gtt symbols (Lucas De Marchi)

Core Changes:

Driver Changes:

- Support programming the EU priority in the GuC descriptor (DG2) (Matthew Brost)
- DG2 HuC loading support (Daniele Ceraolo Spurio)
- Fix build error without CONFIG_PM (YueHaibing)
- Enable THP on Icelake and beyond (Tvrtko Ursulin)
- Only setup private tmpfs mount when needed and fix logging (Tvrtko Ursulin)
- Make __guc_reset_context aware of guilty engines (Umesh Nerlige Ramappa)
- DG2 small bar memory probing fixes (Nirmoy Das)
- Remove unnecessary GuC err capture noise (Alan Previn)
- Fix i915_gem_object_ggtt_pin_ww regression on old platforms (Maarten Lankhorst)
- Fix undefined behavior in GuC backend due to shift overflowing the constant (Borislav Petkov)
- New DG2 workarounds (Swathi Dhanavanthri, Anshuman Gupta)
- Report no hwconfig support on ADL-N (Balasubramani Vivekanandan)
- Fix error_state_read ptr + offset use (Alan Previn)
- Expose per tile media freq factor in sysfs (Ashutosh Dixit, Dale B Stimson)
- Fix memory leaks in per-gt sysfs (Ashutosh Dixit)
- Fix dma_resv fence handling in multi-batch execbuf (Nirmoy Das)
- Add extra registers to GPU error dump on Gen11+ (Stuart Summers)
- More PVC+DG2 workarounds (Matt Roper)
- Improve user experience and driver robustness under SIGINT or similar (Tvrtko Ursulin)
- Don't show engine classes not present (Tvrtko Ursulin)
- Improve on suspend / resume time with VT-d enabled (Thomas Hellström)
- Add missing else (katrinzhou)
- Don't leak lmem mapping in vma_evict (Juha-Pekka Heikkila)
- Add smem fallback allocation for dpt (Juha-Pekka Heikkila)
- Tweak the ordering in cpu_write_needs_clflush (Matthew Auld)
- Do not access rq->engine without a reference (Niranjana Vishwanathapura)
- Revert "drm/i915: Hold reference to intel_context over life of i915_request" (Niranjana Vishwanathapura)
- Don't update engine busyness stats too frequently (Alan Previn)
- Add additional steps for Wa_22011802037 for execlist backend (Umesh Nerlige Ramappa)
- Fix a lockdep warning at error capture (Nirmoy Das)

- Ponte Vecchio prep work and new blitter engines (Matt Roper, John Harrison, Lucas De Marchi)
- Read correct RP_STATE_CAP register (PVC) (Matt Roper)
- Define MOCS table for PVC (Ayaz A Siddiqui)
- Driver refactor and support Ponte Vecchio forcewake handling (Matt Roper)
- Remove additional 3D flags from PIPE_CONTROL (Ponte Vecchio) (Stuart Summers)
- XEHPSDV and PVC do not use HuC (Daniele Ceraolo Spurio)
- Extract stepping information from PCI revid (Ponte Vecchio) (Matt Roper)
- Add initial PVC workarounds (Stuart Summers)
- SSEU handling driver refactor and Ponte Vecchio support (Matt Roper)
- GuC depriv applies to PVC (Matt Roper)
- Add register steering (Ponte Vecchio) (Matt Roper)
- Add recommended MMIO setting (Ponte Vecchio) (Matt Roper)

- Move multicast register handling to a dedicated file (Matt Roper)
- Cleanup interface for MCR operations (Matt Roper)
- Extend i915_vma_pin_iomap() (CQ Tang)
- Re-do the intel-gtt split (Lucas De Marchi)
- Correct duplicated/misplaced GT register definitions (Matt Roper)
- Prefer "XEHP_" prefix for registers (Matt Roper)

- Don't use DRM_DEBUG_WARN_ON for unexpected l3bank/mslice config (Tvrtko Ursulin)
- Don't use DRM_DEBUG_WARN_ON for ring unexpectedly not idle (Tvrtko Ursulin)
- Make drop_pages() return bool (Lucas De Marchi)
- Fix CFI violation with show_dynamic_id() (Nathan Chancellor)
- Use i915_probe_error instead of drm_error in GuC code (Vinay Belgaumkar)
- Fix use of static in macro mismatch (Andi Shyti)
- Update tiled blits selftest (Bommu Krishnaiah)
- Future-proof platform checks (Matt Roper)
- Only include what's needed (Jani Nikula)
- remove accidental static from a local variable (Jani Nikula)
- Add global forcewake request to drpc (Vinay Belgaumkar)
- Fix spelling typo in comment (pengfuyuan)
- Increase timeout for live_parallel_switch selftest (Akeem G Abodunrin)
- Use non-blocking H2G for waitboost (Vinay Belgaumkar)
The following changes since commit 5f38c3fb55ce3814b4353320d7a205068a420e48:

  drm/i915/pcode: Add a couple of pcode helpers (2022-05-20 09:11:45 +0100)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-06-29

for you to fetch changes up to a06968563775181690125091f470a8655742dcbf:

  drm/i915: Fix a lockdep warning at error capture (2022-06-29 14:52:50 +0530)

----------------------------------------------------------------
UAPI Changes:

- Expose per tile media freq factor in sysfs (Ashutosh Dixit, Dale B Stimson)
- Document memory residency and Flat-CCS capability of obj (Ramalingam C)
- Disable GETPARAM lookups of I915_PARAM_[SUB]SLICE_MASK on Xe_HP+ (Matt Roper)

Cross-subsystem Changes:

- Rename intel-gtt symbols (Lucas De Marchi)

Core Changes:

Driver Changes:

- Support programming the EU priority in the GuC descriptor (DG2) (Matthew Brost)
- DG2 HuC loading support (Daniele Ceraolo Spurio)
- Fix build error without CONFIG_PM (YueHaibing)
- Enable THP on Icelake and beyond (Tvrtko Ursulin)
- Only setup private tmpfs mount when needed and fix logging (Tvrtko Ursulin)
- Make __guc_reset_context aware of guilty engines (Umesh Nerlige Ramappa)
- DG2 small bar memory probing fixes (Nirmoy Das)
- Remove unnecessary GuC err capture noise (Alan Previn)
- Fix i915_gem_object_ggtt_pin_ww regression on old platforms (Maarten Lankhorst)
- Fix undefined behavior in GuC backend due to shift overflowing the constant (Borislav Petkov)
- New DG2 workarounds (Swathi Dhanavanthri, Anshuman Gupta)
- Report no hwconfig support on ADL-N (Balasubramani Vivekanandan)
- Fix error_state_read ptr + offset use (Alan Previn)
- Expose per tile media freq factor in sysfs (Ashutosh Dixit, Dale B Stimson)
- Fix memory leaks in per-gt sysfs (Ashutosh Dixit)
- Fix dma_resv fence handling in multi-batch execbuf (Nirmoy Das)
- Add extra registers to GPU error dump on Gen11+ (Stuart Summers)
- More PVC+DG2 workarounds (Matt Roper)
- Improve user experience and driver robustness under SIGINT or similar (Tvrtko Ursulin)
- Don't show engine classes not present (Tvrtko Ursulin)
- Improve on suspend / resume time with VT-d enabled (Thomas Hellström)
- Add missing else (katrinzhou)
- Don't leak lmem mapping in vma_evict (Juha-Pekka Heikkila)
- Add smem fallback allocation for dpt (Juha-Pekka Heikkila)
- Tweak the ordering in cpu_write_needs_clflush (Matthew Auld)
- Do not access rq->engine without a reference (Niranjana Vishwanathapura)
- Revert "drm/i915: Hold reference to intel_context over life of i915_request" (Niranjana Vishwanathapura)
- Don't update engine busyness stats too frequently (Alan Previn)
- Add additional steps for Wa_22011802037 for execlist backend (Umesh Nerlige Ramappa)
- Fix a lockdep warning at error capture (Nirmoy Das)

- Ponte Vecchio prep work and new blitter engines (Matt Roper, John Harrison, Lucas De Marchi)
- Read correct RP_STATE_CAP register (PVC) (Matt Roper)
- Define MOCS table for PVC (Ayaz A Siddiqui)
- Driver refactor and support Ponte Vecchio forcewake handling (Matt Roper)
- Remove additional 3D flags from PIPE_CONTROL (Ponte Vecchio) (Stuart Summers)
- XEHPSDV and PVC do not use HuC (Daniele Ceraolo Spurio)
- Extract stepping information from PCI revid (Ponte Vecchio) (Matt Roper)
- Add initial PVC workarounds (Stuart Summers)
- SSEU handling driver refactor and Ponte Vecchio support (Matt Roper)
- GuC depriv applies to PVC (Matt Roper)
- Add register steering (Ponte Vecchio) (Matt Roper)
- Add recommended MMIO setting (Ponte Vecchio) (Matt Roper)

- Move multicast register handling to a dedicated file (Matt Roper)
- Cleanup interface for MCR operations (Matt Roper)
- Extend i915_vma_pin_iomap() (CQ Tang)
- Re-do the intel-gtt split (Lucas De Marchi)
- Correct duplicated/misplaced GT register definitions (Matt Roper)
- Prefer "XEHP_" prefix for registers (Matt Roper)

- Don't use DRM_DEBUG_WARN_ON for unexpected l3bank/mslice config (Tvrtko Ursulin)
- Don't use DRM_DEBUG_WARN_ON for ring unexpectedly not idle (Tvrtko Ursulin)
- Make drop_pages() return bool (Lucas De Marchi)
- Fix CFI violation with show_dynamic_id() (Nathan Chancellor)
- Use i915_probe_error instead of drm_error in GuC code (Vinay Belgaumkar)
- Fix use of static in macro mismatch (Andi Shyti)
- Update tiled blits selftest (Bommu Krishnaiah)
- Future-proof platform checks (Matt Roper)
- Only include what's needed (Jani Nikula)
- remove accidental static from a local variable (Jani Nikula)
- Add global forcewake request to drpc (Vinay Belgaumkar)
- Fix spelling typo in comment (pengfuyuan)
- Increase timeout for live_parallel_switch selftest (Akeem G Abodunrin)
- Use non-blocking H2G for waitboost (Vinay Belgaumkar)

----------------------------------------------------------------
Akeem G Abodunrin (1):
      drm/i915/selftests: Increase timeout for live_parallel_switch

Alan Previn (3):
      drm/i915/guc: Remove unnecessary GuC err capture noise
      drm/i915/reset: Fix error_state_read ptr + offset use
      drm/i915/guc: Don't update engine busyness stats too frequently

Andi Shyti (1):
      drm/i915/gt: Fix use of static in macro mismatch

Anshuman Gupta (1):
      drm/i915/dg2: Add Wa_14015795083

Ashutosh Dixit (3):
      drm/i915/gt: Add media freq factor to per-gt sysfs
      drm/i915/pcode: Init pcode on different gt's
      drm/i915/gt: Fix memory leaks in per-gt sysfs

Ayaz A Siddiqui (1):
      drm/i915/pvc: Define MOCS table for PVC

Balasubramani Vivekanandan (1):
      drm/i915/hwconfig: Report no hwconfig support on ADL-N

Bommu Krishnaiah (1):
      drm/i915: Update tiled blits selftest

Borislav Petkov (1):
      drm/i915/uc: Fix undefined behavior due to shift overflowing the constant

CQ Tang (1):
      drm/i915: extend i915_vma_pin_iomap()

Dale B Stimson (1):
      drm/i915/gt: Add media RP0/RPn to per-gt sysfs

Daniele Ceraolo Spurio (5):
      drm/i915/huc: drop intel_huc_is_authenticated
      drm/i915/huc: Add fetch support for gsc-loaded HuC binary
      drm/i915/huc: Prepare for GSC-loaded HuC
      drm/i915/huc: Don't fail the probe if HuC init fails
      drm/i915/guc: XEHPSDV and PVC do not use HuC

Jani Nikula (2):
      drm/i915/client: only include what's needed
      drm/i915/uc: remove accidental static from a local variable

John Harrison (1):
      drm/i915/pvc: Reduce stack usage in reset selftest with extra blitter engine

José Roberto de Souza (7):
      drm/i915: Drop has_gt_uc from device info
      drm/i915: Drop has_rc6 from device info
      drm/i915: Drop has_reset_engine from device info
      drm/i915: Drop has_logical_ring_elsq from device info
      drm/i915: Drop has_ddi from device info
      drm/i915: Drop has_dp_mst from device info
      drm/i915: Drop has_psr from device info

Juha-Pekka Heikkila (2):
      drm/i915: don't leak lmem mapping in vma_evict
      drm/i915/display: Add smem fallback allocation for dpt

Lucas De Marchi (5):
      drm/i915/gem: Make drop_pages() return bool
      drm/i915/pvc: skip all copy engines from aux table invalidate
      drm/i915/pvc: read fuses for link copy engines
      agp/intel: Rename intel-gtt symbols
      drm/i915/gt: Re-do the intel-gtt split

Maarten Lankhorst (1):
      drm/i915: Use i915_gem_object_ggtt_pin_ww for reloc_iomap

Matt Roper (27):
      drm/i915/pvc: Read correct RP_STATE_CAP register
      drm/i915/gvt: Use intel_engine_mask_t for ring mask
      drm/i915/pvc: Engine definitions for new copy engines
      drm/i915/pvc: Interrupt support for new copy engines
      drm/i915/pvc: Reset support for new copy engines
      drm/i915/uncore: Reorganize and document shadow and forcewake tables
      drm/i915/pvc: Add forcewake support
      drm/i915/pvc: Add new BCS engines to GuC engine list
      drm/i915/hwconfig: Future-proof platform checks
      drm/i915/pvc: Extract stepping information from PCI revid
      drm/i915/xehp: Use separate sseu init function
      drm/i915/xehp: Drop GETPARAM lookups of I915_PARAM_[SUB]SLICE_MASK
      drm/i915/sseu: Simplify gen11+ SSEU handling
      drm/i915/sseu: Don't try to store EU mask internally in UAPI format
      drm/i915/sseu: Disassociate internal subslice mask representation from uapi
      drm/i915/pvc: Add SSEU changes
      drm/i915/pvc: GuC depriv applies to PVC
      drm/i915/dg2: Correct DSS check for Wa_1308578152
      drm/i915: More PVC+DG2 workarounds
      drm/i915/xehp: Correct steering initialization
      drm/i915/pvc: Add register steering
      drm/i915/pvc: Adjust EU per SS according to HAS_ONE_EU_PER_FUSE_BIT()
      drm/i915/pvc: Add recommended MMIO setting
      drm/i915/gt: Move multicast register handling to a dedicated file
      drm/i915/gt: Cleanup interface for MCR operations
      drm/i915: Correct duplicated/misplaced GT register definitions
      drm/i915: Prefer "XEHP_" prefix for registers

Matthew Auld (1):
      drm/i915: tweak the ordering in cpu_write_needs_clflush

Matthew Brost (1):
      drm/i915/guc: Support programming the EU priority in the GuC descriptor

Nathan Chancellor (1):
      drm/i915: Fix CFI violation with show_dynamic_id()

Niranjana Vishwanathapura (2):
      drm/i915: Do not access rq->engine without a reference
      Revert "drm/i915: Hold reference to intel_context over life of i915_request"

Nirmoy Das (5):
      drm/i915: return -EIO on lmem setup failure
      drm/i915: determine lmem_size properly
      drm/i915: gracefully error out on platform with small-bar
      drm/i915: Individualize fences before adding to dma_resv obj
      drm/i915: Fix a lockdep warning at error capture

Ramalingam C (1):
      uapi/drm/i915: Document memory residency and Flat-CCS capability of obj

Stuart Summers (3):
      drm/i915/pvc: Remove additional 3D flags from PIPE_CONTROL
      drm/i915/pvc: Add initial PVC workarounds
      drm/i915: Add extra registers to GPU error dump

Swathi Dhanavanthri (2):
      drm/i915/dg2: Add workaround 22014600077
      drm/i915/dg2: Extend Wa_22010954014 to DG2-G11 and DG2-G12

Thomas Hellström (1):
      drm/i915: Improve on suspend / resume time with VT-d enabled

Tvrtko Ursulin (14):
      drm/i915: Don't use DRM_DEBUG_WARN_ON for unexpected l3bank/mslice config
      drm/i915: Don't use DRM_DEBUG_WARN_ON for ring unexpectedly not idle
      drm/i915: Enable THP on Icelake and beyond
      drm/i915: Only setup private tmpfs mount when needed and fix logging
      Revert "drm/i915: Drop has_psr from device info"
      Revert "drm/i915: Drop has_dp_mst from device info"
      Revert "drm/i915: Drop has_ddi from device info"
      Revert "drm/i915: Drop has_logical_ring_elsq from device info"
      Revert "drm/i915: Drop has_reset_engine from device info"
      Revert "drm/i915: Drop has_rc6 from device info"
      Revert "drm/i915: Drop has_gt_uc from device info"
      Merge tag 'drm-intel-next-2022-05-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next
      drm/i915: Improve user experience and driver robustness under SIGINT or similar
      drm/i915/fdinfo: Don't show engine classes not present

Umesh Nerlige Ramappa (2):
      i915/guc/reset: Make __guc_reset_context aware of guilty engines
      drm/i915/reset: Add additional steps for Wa_22011802037 for execlist backend

Vinay Belgaumkar (3):
      drm/i915/guc/rc: Use i915_probe_error instead of drm_error
      drm/i915: Add global forcewake request to drpc
      drm/i915/guc/slpc: Use non-blocking H2G for waitboost

YueHaibing (1):
      drm/i915/gt: Fix build error without CONFIG_PM

katrinzhou (1):
      drm/i915/gem: add missing else

pengfuyuan (1):
      drm/i915: Fix spelling typo in comment

 Documentation/gpu/drm-usage-stats.rst              |  112 ++
 Documentation/gpu/i915.rst                         |   40 +
 Documentation/gpu/index.rst                        |    1 +
 MAINTAINERS                                        |    1 +
 drivers/char/agp/intel-gtt.c                       |   58 +-
 drivers/gpu/drm/i915/Kconfig                       |    3 +-
 drivers/gpu/drm/i915/Makefile                      |   11 +
 drivers/gpu/drm/i915/display/intel_dpt.c           |   18 +-
 drivers/gpu/drm/i915/display/intel_fb.c            |    2 +-
 drivers/gpu/drm/i915/display/intel_fb_pin.c        |    2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c         |    4 +-
 drivers/gpu/drm/i915/display/intel_plane_initial.c |   56 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  103 +-
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |    6 +
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   15 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |    6 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   23 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |    3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |    2 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |   50 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.h         |    7 +
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   12 +-
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  146 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |    4 -
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |   52 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |    1 +
 drivers/gpu/drm/i915/gem/i915_gemfs.c              |   50 +-
 drivers/gpu/drm/i915/gem/i915_gemfs.h              |    3 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |  250 ++-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |    2 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |    6 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  |   12 +-
 drivers/gpu/drm/i915/gem/selftests/mock_context.c  |    5 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |    2 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |  186 ++-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |   11 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   12 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   53 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   40 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   28 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   15 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  251 +++-
 drivers/gpu/drm/i915/gt/intel_engine_regs.h        |   13 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   25 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |   13 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |   89 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  238 ++-
 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c          |  132 ++
 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h          |   27 +
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |   68 +-
 drivers/gpu/drm/i915/gt/intel_gsc.c                |  224 +++
 drivers/gpu/drm/i915/gt/intel_gsc.h                |   37 +
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  294 ++--
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   31 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |    4 +
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.c         |   21 +-
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.h         |    2 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   29 +
 drivers/gpu/drm/i915/gt/intel_gt_mcr.c             |  497 ++++++
 drivers/gpu/drm/i915/gt/intel_gt_mcr.h             |   34 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   18 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   48 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h      |    4 +-
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |   98 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c           |  117 ++
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h           |   30 +
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        |  779 ++++++++++
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h        |   15 +
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   29 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   56 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   96 +-
 drivers/gpu/drm/i915/gt/intel_hwconfig.h           |   21 +
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  114 +-
 drivers/gpu/drm/i915/gt/intel_lrc.h                |   36 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |  385 ++++-
 drivers/gpu/drm/i915/gt/intel_mocs.c               |   24 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |    2 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |    8 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   31 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |    9 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   13 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  128 +-
 drivers/gpu/drm/i915/gt/intel_rps.h                |    6 +-
 drivers/gpu/drm/i915/gt/intel_rps_types.h          |   15 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  478 +++---
 drivers/gpu/drm/i915/gt/intel_sseu.h               |  122 +-
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |   60 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  201 ++-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |   86 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |    9 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   63 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |  259 +++-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |   16 +-
 .../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h  |    6 +
 .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h |    2 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h    |    4 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h      |   15 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h  |    2 +-
 drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h      |  218 +++
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   52 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   29 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  188 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     | 1584 ++++++++++++++++++++
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h     |   33 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |   93 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c    |  164 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |  125 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |    7 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c          |    5 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |    3 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |  114 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h        |    1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h  |    3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  661 +++++---
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   97 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.h             |    5 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c          |    5 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |   28 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.h              |    2 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  137 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |    2 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h       |    9 +
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          |    2 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c              |    2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   12 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   73 +-
 drivers/gpu/drm/i915/i915_drm_client.c             |  160 ++
 drivers/gpu/drm/i915/i915_drm_client.h             |   68 +
 drivers/gpu/drm/i915/i915_drv.h                    |   51 +-
 drivers/gpu/drm/i915/i915_file_private.h           |    3 +
 drivers/gpu/drm/i915/i915_gem.c                    |   89 +-
 drivers/gpu/drm/i915/i915_getparam.c               |   11 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  324 ++--
 drivers/gpu/drm/i915/i915_gpu_error.h              |   44 +-
 drivers/gpu/drm/i915/i915_params.c                 |    3 +
 drivers/gpu/drm/i915/i915_params.h                 |    1 +
 drivers/gpu/drm/i915/i915_pci.c                    |   47 +-
 drivers/gpu/drm/i915/i915_perf.c                   |    4 +-
 drivers/gpu/drm/i915/i915_perf_types.h             |    2 +-
 drivers/gpu/drm/i915/i915_query.c                  |  108 +-
 drivers/gpu/drm/i915/i915_reg.h                    |   46 +-
 drivers/gpu/drm/i915/i915_reg_defs.h               |    2 -
 drivers/gpu/drm/i915/i915_request.c                |   57 +-
 drivers/gpu/drm/i915/i915_request.h                |    2 +
 drivers/gpu/drm/i915/i915_sysfs.c                  |  327 +---
 drivers/gpu/drm/i915/i915_sysfs.h                  |    3 +
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |    4 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  214 +--
 drivers/gpu/drm/i915/i915_vma.h                    |   15 -
 drivers/gpu/drm/i915/i915_vma_resource.c           |    2 +-
 drivers/gpu/drm/i915/i915_vma_resource.h           |    6 +
 drivers/gpu/drm/i915/i915_vma_types.h              |    8 +-
 drivers/gpu/drm/i915/intel_device_info.c           |    1 +
 drivers/gpu/drm/i915/intel_device_info.h           |    8 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |    2 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |    8 +-
 drivers/gpu/drm/i915/intel_pm.c                    |   23 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |    7 +-
 drivers/gpu/drm/i915/intel_region_ttm.h            |    1 +
 drivers/gpu/drm/i915/intel_step.c                  |   70 +-
 drivers/gpu/drm/i915/intel_step.h                  |    4 +-
 drivers/gpu/drm/i915/intel_uncore.c                |  332 ++--
 drivers/gpu/drm/i915/intel_uncore.h                |    9 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   18 +-
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |    2 +
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |   13 +-
 drivers/gpu/drm/i915/selftests/mock_region.c       |    4 +
 drivers/misc/mei/Kconfig                           |   14 +
 drivers/misc/mei/Makefile                          |    3 +
 drivers/misc/mei/bus-fixup.c                       |   25 +
 drivers/misc/mei/gsc-me.c                          |  259 ++++
 drivers/misc/mei/hw-me.c                           |   29 +-
 drivers/misc/mei/hw-me.h                           |    2 +
 include/drm/intel-gtt.h                            |   24 +-
 include/linux/mei_aux.h                            |   19 +
 include/uapi/drm/i915_drm.h                        |  369 ++++-
 181 files changed, 10550 insertions(+), 2810 deletions(-)
 create mode 100644 Documentation/gpu/drm-usage-stats.rst
 create mode 100644 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gsc.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gsc.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_mcr.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_mcr.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_hwconfig.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c
 create mode 100644 drivers/gpu/drm/i915/i915_drm_client.c
 create mode 100644 drivers/gpu/drm/i915/i915_drm_client.h
 create mode 100644 drivers/misc/mei/gsc-me.c
 create mode 100644 include/linux/mei_aux.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-05-05  6:39 Tvrtko Ursulin
  0 siblings, 0 replies; 37+ messages in thread
From: Tvrtko Ursulin @ 2022-05-05  6:39 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx


Hi Dave, Daniel,

Here goes the final drm-intel-gt-next PR towards 5.19.

A fix for a security issue affecting Tigerlake onwards and a plain fix for
a race in VMA handling have landed since the previous pull.

Also last two bits of DG2 enablement are included - GuC firmware version
has been defined and compute command streamers have been exposed to
userspace.

Else just a handful of small cleanups and selftest fixes. There are
initial Ponte Vecchio definitions but no impact oustside development
branch management.

Regards,

Tvrtko

drm-intel-gt-next-2022-05-05:
UAPI Changes:

- Add kerneldoc for engine class enum (Matt Roper)
- Add compute engine ABI (Matt Roper)

Driver Changes:

- Define GuC firmware version for DG2 (John Harrison)
- Clear SET_PREDICATE_RESULT prior to executing the ring (Chris Wilson)
- Fix race in __i915_vma_remove_closed (Karol Herbst)

- Add register for compute engine's MMIO-based TLB invalidation (Matt Roper)
- Xe_HP SDV and DG2 have up to 4 CCS engines (Daniele Ceraolo Spurio)
- Add initial Ponte Vecchio definitions (Stuart Summers)
- Document the eviction of the Flat-CCS objects (Ramalingam C)

- Use existing uncore helper to read gpm_timestamp (Umesh Nerlige Ramappa)
- Fix issue with LRI relative addressing (Akeem G Abodunrin)
- Skip poisoning SET_PREDICATE_RESULT on dg2 (Chris Wilson)
- Optimize the ccs_sz calculation per chunk (Ramalingam C)
- Remove superfluous string helper include (Jani Nikula)
- Fix assert in i915_ggtt_pin (Tvrtko Ursulin)
- Use IOMEM_ERR_PTR() directly (Kefeng Wang)
The following changes since commit f15856d7de914595d0daa2c706f53a693b48e228:

  drm/i915/dg2: add gsc with special gsc bar offsets (2022-04-21 11:34:39 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 1df1c79cbb7ac9bf148930be3418973c76ba8dde:

  drm/i915: Fix race in __i915_vma_remove_closed (2022-05-04 16:22:13 +0100)

----------------------------------------------------------------
UAPI Changes:

- Add kerneldoc for engine class enum (Matt Roper)
- Add compute engine ABI (Matt Roper)

Driver Changes:

- Define GuC firmware version for DG2 (John Harrison)
- Clear SET_PREDICATE_RESULT prior to executing the ring (Chris Wilson)
- Fix race in __i915_vma_remove_closed (Karol Herbst)

- Add register for compute engine's MMIO-based TLB invalidation (Matt Roper)
- Xe_HP SDV and DG2 have up to 4 CCS engines (Daniele Ceraolo Spurio)
- Add initial Ponte Vecchio definitions (Stuart Summers)
- Document the eviction of the Flat-CCS objects (Ramalingam C)

- Use existing uncore helper to read gpm_timestamp (Umesh Nerlige Ramappa)
- Fix issue with LRI relative addressing (Akeem G Abodunrin)
- Skip poisoning SET_PREDICATE_RESULT on dg2 (Chris Wilson)
- Optimize the ccs_sz calculation per chunk (Ramalingam C)
- Remove superfluous string helper include (Jani Nikula)
- Fix assert in i915_ggtt_pin (Tvrtko Ursulin)
- Use IOMEM_ERR_PTR() directly (Kefeng Wang)

----------------------------------------------------------------
Akeem G Abodunrin (1):
      drm/i915/xehpsdv/dg1/tgl: Fix issue with LRI relative addressing

Chris Wilson (2):
      drm/i915/selftests: Skip poisoning SET_PREDICATE_RESULT on dg2
      drm/i915/gt: Clear SET_PREDICATE_RESULT prior to executing the ring

Daniele Ceraolo Spurio (1):
      drm/i915: Xe_HP SDV and DG2 have up to 4 CCS engines

Jani Nikula (1):
      drm/i915: remove superfluous string helper include

John Harrison (1):
      drm/i915/dg2: Define GuC firmware version for DG2

Karol Herbst (1):
      drm/i915: Fix race in __i915_vma_remove_closed

Kefeng Wang (1):
      drm/i915: use IOMEM_ERR_PTR() directly

Matt Roper (3):
      drm/i915/uapi: Add kerneldoc for engine class enum
      drm/i915/xehp: Add register for compute engine's MMIO-based TLB invalidation
      drm/i915/xehp: Add compute engine ABI

Ramalingam C (2):
      drm/i915/gt: optimize the ccs_sz calculation per chunk
      drm/i915/gt: Document the eviction of the Flat-CCS objects

Stuart Summers (1):
      drm/i915/pvc: add initial Ponte Vecchio definitions

Tvrtko Ursulin (1):
      drm/i915: Fix assert in i915_ggtt_pin

Umesh Nerlige Ramappa (1):
      drm/i915/pmu: Use existing uncore helper to read gpm_timestamp

 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           | 54 ++++++++++++++++
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |  7 ++
 drivers/gpu/drm/i915/gt/intel_engine_regs.h        |  2 +
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |  2 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   | 15 +++--
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |  2 +
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  1 +
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |  1 +
 drivers/gpu/drm/i915/gt/intel_lrc.c                | 75 ++++++++++++++++------
 drivers/gpu/drm/i915/gt/intel_lrc.h                |  5 ++
 drivers/gpu/drm/i915/gt/intel_migrate.c            | 59 ++++++++---------
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  2 -
 drivers/gpu/drm/i915/gt/selftest_lrc.c             | 53 ++++++++++++++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 19 ++----
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  1 +
 drivers/gpu/drm/i915/i915_drm_client.c             |  1 +
 drivers/gpu/drm/i915/i915_drm_client.h             |  2 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  2 +
 drivers/gpu/drm/i915/i915_pci.c                    | 27 +++++++-
 drivers/gpu/drm/i915/i915_vma.c                    | 19 +++---
 drivers/gpu/drm/i915/i915_vma.h                    |  1 -
 drivers/gpu/drm/i915/intel_device_info.c           |  1 +
 drivers/gpu/drm/i915/intel_device_info.h           |  1 +
 include/uapi/drm/i915_drm.h                        | 62 ++++++++++++++++--
 24 files changed, 319 insertions(+), 95 deletions(-)

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-04-27 10:49 Tvrtko Ursulin
  0 siblings, 0 replies; 37+ messages in thread
From: Tvrtko Ursulin @ 2022-04-27 10:49 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx


Hi Dave, Daniel,

Here goes the first drm-intel-gt-next PR towards 5.19.

A lot of stuff here across the board in terms of new features, new platform
support and bug fixes. For bug fixes the most interesting are:

 * a fix for out of bounds kernel access in mmap ops due incorrect object bound
   checking;
 * a fix for a GPU hang triggered by usage, of multiple media engines on
   Tigerlake and above;
 * correcting the sequence for doing engine resets on Tigerlake;
 * fix for split frame workloads in GuC mode;
 * fix for mmap of prime imported local memory objects;
 * fix for a VM refcounting bug;
 * fix fbdev setup to avoid potential out of bounds access.

Another two nice user visible improvements are one in frame buffer pinning logic
which enables Weston to reach 60fps on 8K displays and resurrection of the
ability to monitor per client GPU usage using intel_gpu_top (consuming data
exported via proc fdinfo). The latter contains a common DRM format specification
and is hopeful of gaining more wide spread adoption in the future.

GuC backend has finally achieved feature parity in terms of being able to
provide error capture state after GPU hangs. The captured data is compatible
with existing error parsing tools (IGT and Mesa) and also contains a new GuC
log segment which does not currently have an open source parser.

Also in the GuC area there was a bunch of refactoring to prepare for new
firmware API and also lay the ground work for supporting new platforms like DG2.

For the latter a buch of GuC based workarounds were added, together with support
for small PCI BAR setups, eviction of compressed objects and general platform
bring-up like code refactoring to deal with steered register writes.

DG2 also needs two new bits of UAPI. One is the hwconfig query which is a new
way of obtaining a binary table describing the GPU configuration directly from
the firmware blob. Second is a new query enabling query of geometry subslices
needed to support the fact geometry and compute slice configuration is no longer
uniform.

Also on the UAPI front there is sysfs support for multi-tile platforms which
exports the existing controls such as frequency and similar but duplicated for
each tile.

Graphics System Controller (GSC) support was added for discrete platforms as
well, which is required both for firmware management and protected media path.
Access to this is via the existing MEI character device.

Work has also started refactoring the codebase to allow driver builds outside
x86.

Finally, there were two drm-next backmerges to unblock feature development.

Regards,

Tvrtko

drm-intel-gt-next-2022-04-27:
UAPI Changes:

- GuC hwconfig support and query (John Harrison, Rodrigo Vivi, Tvrtko Ursulin)
- Sysfs support for multi-tile devices (Andi Shyti, Sujaritha Sundaresan)
- Per client GPU utilisation via fdinfo (Tvrtko Ursulin, Ashutosh Dixit)
- Add DRM_I915_QUERY_GEOMETRY_SUBSLICES (Matt Atwood)

Cross-subsystem Changes:

- Add GSC as a MEI auxiliary device (Tomas Winkler, Alexander Usyskin)

Core Changes:

- Document fdinfo format specification (Tvrtko Ursulin)

Driver Changes:

- Fix prime_mmap to work when using LMEM (Gwan-gyeong Mun)
- Fix vm open count and remove vma refcount (Thomas Hellström)
- Fixup setting screen_size (Matthew Auld)
- Opportunistically apply ALLOC_CONTIGIOUS (Matthew Auld)
- Limit where we apply TTM_PL_FLAG_CONTIGUOUS (Matthew Auld)
- Drop aux table invalidation on FlatCCS platforms (Matt Roper)
- Add missing boundary check in vm_access (Mastan Katragadda)
- Update topology dumps for Xe_HP (Matt Roper)
- Add support for steered register writes (Matt Roper)
- Add steering info to GuC register save/restore list (Daniele Ceraolo Spurio)
- Small PCI BAR enabling (Matthew Auld, Akeem G Abodunrin, CQ Tang)
- Add preemption changes for Wa_14015141709 (Akeem G Abodunrin)
- Add logical mapping for video decode engines (Matthew Brost)
- Don't evict unmappable VMAs when pinning with PIN_MAPPABLE (v2) (Vivek Kasireddy)
- GuC error capture support (Alan Previn, Daniele Ceraolo Spurio)
- avoid concurrent writes to aux_inv (Fei Yang)
- Add Wa_22014226127 (José Roberto de Souza)
- Sunset igpu legacy mmap support based on GRAPHICS_VER_FULL (Matt Roper)
- Evict and restore of compressed objects (Ramalingam C)
- Update to GuC version 70.1.1 (John Harrison)
- Add Wa_22011802037 force cs halt (Tilak Tangudu)
- Enable Wa_22011802037 for gen12 GuC based platforms (Umesh Nerlige Ramappa)
- GuC based workarounds for DG2 (Vinay Belgaumkar, John Harrison, Matthew Brost, José Roberto de Souza)
- consider min_page_size when migrating (Matthew Auld)

- Prep work for next GuC firmware release (John Harrison)
- Support platforms with CCS engines but no RCS (Matt Roper, Stuart Summers)
- Don't overallocate subslice storage (Matt Roper)
- Reduce stack usage in debugfs due to SSEU (John Harrison)
- Report steering details in debugfs (Matt Roper)
- Refactor some x86-ism out to prepare for non-x86 builds (Michael Cheng)
- add lmem_size modparam (CQ Tang)
- Refactor for non-x86 driver builds (Casey Bowman)
- Centralize computation of freq caps (Ashutosh Dixit)

- Update dma_buf_ops.unmap_dma_buf callback to use drm_gem_unmap_dma_buf() (Gwan-gyeong Mun)
- Limit the async bind to bind_async_flags (Matthew Auld)
- Stop checking for NULL vma->obj (Matthew Auld)
- Reduce overzealous alignment constraints for GGTT (Matthew Auld)
- Remove GEN12_SFC_DONE_MAX from register defs header (Matt Roper)
- Fix renamed struct field (Lucas De Marchi)
- Do not return '0' if there is nothing to return (Andi Shyti)
- fix i915_reg_t initialization (Jani Nikula)
- move the migration sanity check (Matthew Auld)
- handle more rounding in selftests (Matthew Auld)
- Perf and i915 query kerneldoc updates (Matt Roper)
- Use i915_probe_error instead of drm_err (Vinay Belgaumkar)
- sanity check object size in the buddy allocator (Matthew Auld)
- fixup selftests min_alignment usage (Matthew Auld)
- tweak selftests misaligned_case (Matthew Auld)
The following changes since commit c54b39a565227538c52ead2349eb17d54aadd6f7:

  Merge tag 'drm-intel-next-2022-04-13-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2022-04-14 12:03:09 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-04-27

for you to fetch changes up to f15856d7de914595d0daa2c706f53a693b48e228:

  drm/i915/dg2: add gsc with special gsc bar offsets (2022-04-21 11:34:39 -0700)

----------------------------------------------------------------
UAPI Changes:

- GuC hwconfig support and query (John Harrison, Rodrigo Vivi, Tvrtko Ursulin)
- Sysfs support for multi-tile devices (Andi Shyti, Sujaritha Sundaresan)
- Per client GPU utilisation via fdinfo (Tvrtko Ursulin, Ashutosh Dixit)
- Add DRM_I915_QUERY_GEOMETRY_SUBSLICES (Matt Atwood)

Cross-subsystem Changes:

- Add GSC as a MEI auxiliary device (Tomas Winkler, Alexander Usyskin)

Core Changes:

- Document fdinfo format specification (Tvrtko Ursulin)

Driver Changes:

- Fix prime_mmap to work when using LMEM (Gwan-gyeong Mun)
- Fix vm open count and remove vma refcount (Thomas Hellström)
- Fixup setting screen_size (Matthew Auld)
- Opportunistically apply ALLOC_CONTIGIOUS (Matthew Auld)
- Limit where we apply TTM_PL_FLAG_CONTIGUOUS (Matthew Auld)
- Drop aux table invalidation on FlatCCS platforms (Matt Roper)
- Add missing boundary check in vm_access (Mastan Katragadda)
- Update topology dumps for Xe_HP (Matt Roper)
- Add support for steered register writes (Matt Roper)
- Add steering info to GuC register save/restore list (Daniele Ceraolo Spurio)
- Small PCI BAR enabling (Matthew Auld, Akeem G Abodunrin, CQ Tang)
- Add preemption changes for Wa_14015141709 (Akeem G Abodunrin)
- Add logical mapping for video decode engines (Matthew Brost)
- Don't evict unmappable VMAs when pinning with PIN_MAPPABLE (v2) (Vivek Kasireddy)
- GuC error capture support (Alan Previn, Daniele Ceraolo Spurio)
- avoid concurrent writes to aux_inv (Fei Yang)
- Add Wa_22014226127 (José Roberto de Souza)
- Sunset igpu legacy mmap support based on GRAPHICS_VER_FULL (Matt Roper)
- Evict and restore of compressed objects (Ramalingam C)
- Update to GuC version 70.1.1 (John Harrison)
- Add Wa_22011802037 force cs halt (Tilak Tangudu)
- Enable Wa_22011802037 for gen12 GuC based platforms (Umesh Nerlige Ramappa)
- GuC based workarounds for DG2 (Vinay Belgaumkar, John Harrison, Matthew Brost, José Roberto de Souza)
- consider min_page_size when migrating (Matthew Auld)

- Prep work for next GuC firmware release (John Harrison)
- Support platforms with CCS engines but no RCS (Matt Roper, Stuart Summers)
- Don't overallocate subslice storage (Matt Roper)
- Reduce stack usage in debugfs due to SSEU (John Harrison)
- Report steering details in debugfs (Matt Roper)
- Refactor some x86-ism out to prepare for non-x86 builds (Michael Cheng)
- add lmem_size modparam (CQ Tang)
- Refactor for non-x86 driver builds (Casey Bowman)
- Centralize computation of freq caps (Ashutosh Dixit)

- Update dma_buf_ops.unmap_dma_buf callback to use drm_gem_unmap_dma_buf() (Gwan-gyeong Mun)
- Limit the async bind to bind_async_flags (Matthew Auld)
- Stop checking for NULL vma->obj (Matthew Auld)
- Reduce overzealous alignment constraints for GGTT (Matthew Auld)
- Remove GEN12_SFC_DONE_MAX from register defs header (Matt Roper)
- Fix renamed struct field (Lucas De Marchi)
- Do not return '0' if there is nothing to return (Andi Shyti)
- fix i915_reg_t initialization (Jani Nikula)
- move the migration sanity check (Matthew Auld)
- handle more rounding in selftests (Matthew Auld)
- Perf and i915 query kerneldoc updates (Matt Roper)
- Use i915_probe_error instead of drm_err (Vinay Belgaumkar)
- sanity check object size in the buddy allocator (Matthew Auld)
- fixup selftests min_alignment usage (Matthew Auld)
- tweak selftests misaligned_case (Matthew Auld)

----------------------------------------------------------------
Akeem G Abodunrin (2):
      drm/i915/stolen: don't treat small BAR as an error
      drm/i915/dg2: Add preemption changes for Wa_14015141709

Alan Previn (13):
      drm/i915/guc: Update GuC ADS size for error capture lists
      drm/i915/guc: Add XE_LP static registers for GuC error capture.
      drm/i915/guc: Add XE_LP steered register lists support
      drm/i915/guc: Add DG2 registers for GuC error state capture.
      drm/i915/guc: Add Gen9 registers for GuC error state capture.
      drm/i915/guc: Add GuC's error state capture output structures.
      drm/i915/guc: Update GuC-log relay function names
      drm/i915/guc: Add capture region into intel_guc_log
      drm/i915/guc: Check sizing of guc_capture output
      drm/i915/guc: Extract GuC error capture lists on G2H notification.
      drm/i915/guc: Pre-allocate output nodes for extraction
      drm/i915/guc: Plumb GuC-capture into gpu_coredump
      drm/i915/guc: Print the GuC error capture output register list.

Alexander Usyskin (2):
      mei: gsc: setup char driver alive in spite of firmware handshake failure
      mei: gsc: retrieve the firmware version

Andi Shyti (6):
      drm/i915: Rename INTEL_REGION_LMEM with INTEL_REGION_LMEM_0
      drm/i915/gt: add gt_is_root() helper
      drm/i915/gt: create per-tile sysfs interface
      drm/i915/gt: Create per-tile RC6 sysfs interface
      drm/i915/gt: Create per-tile RPS sysfs interfaces
      drm/i915/debugfs: Do not return '0' if there is nothing to return

Ashutosh Dixit (2):
      drm/i915/rps: Centralize computation of freq caps
      drm/i915: Don't show engine information in fdinfo with GuC submission

CQ Tang (2):
      drm/i915/display: Check mappable aperture when pinning preallocated vma
      drm/i915: add lmem_size modparam

Casey Bowman (2):
      drm/i915/gt: Split intel-gtt functions by arch
      drm/i915: Require INTEL_GTT to depend on X86

Daniele Ceraolo Spurio (2):
      drm/i915/guc: add steering info to GuC register save/restore list
      drm/i915/guc: Correctly free guc capture struct on error

Fei Yang (1):
      drm/i915: avoid concurrent writes to aux_inv

Gwan-gyeong Mun (2):
      drm/i915/dmabuf: Update dma_buf_ops.unmap_dma_buf callback to use drm_gem_unmap_dma_buf()
      drm/i915/dmabuf: Fix prime_mmap to work when using LMEM

Jani Nikula (1):
      drm/i915/gt: fix i915_reg_t initialization

John Harrison (13):
      drm/i915/guc: Do not conflate lrc_desc with GuC id for registration
      drm/i915/guc: Add an explicit 'submission_initialized' flag
      drm/i915/guc: Better name for context id limit
      drm/i915/guc: Split guc_lrc_desc_pin apart
      drm/i915/guc: Move lrc desc setup to where it is needed
      drm/i915/guc: Rename desc_idx to ctx_id
      drm/i915/guc: Drop obsolete H2G definitions
      drm/i915/guc: Fix potential invalid pointer dereferences when decoding G2Hs
      drm/i915: Reduce stack usage in debugfs due to SSEU
      drm/i915/guc: Add fetch of hwconfig blob
      drm/i915/guc: Update to GuC version 70.1.1
      drm/i915/guc: Enable GuC based workarounds for DG2
      drm/i915/dg2: Enable Wa_22012727170/Wa_22012727685

Joonas Lahtinen (1):
      Merge drm/drm-next into drm-intel-gt-next

José Roberto de Souza (2):
      drm/i915/dg2: Add Wa_22014226127
      drm/i915/dg2: Add workaround 18019627453

Lucas De Marchi (1):
      drm/i915: Fix renamed struct field

Mastan Katragadda (1):
      drm/i915/gem: add missing boundary check in vm_access

Matt Atwood (1):
      drm/i915/uapi: Add DRM_I915_QUERY_GEOMETRY_SUBSLICES

Matt Roper (11):
      drm/i915/xehp: Support platforms with CCS engines but no RCS
      drm/i915/xehp: Drop aux table invalidation on FlatCCS platforms
      drm/i915/gt: Remove GEN12_SFC_DONE_MAX from register defs header
      drm/i915/sseu: Don't overallocate subslice storage
      drm/i915/xehp: Update topology dumps for Xe_HP
      drm/i915: Report steering details in debugfs
      drm/i915: Add support for steered register writes
      drm/i915: Sunset igpu legacy mmap support based on GRAPHICS_VER_FULL
      drm/i915/doc: Convert drm_i915_query_topology_info comment to kerneldoc
      drm/i915/doc: Convert perf UAPI comments to kerneldoc
      drm/i915/doc: Link query items to their uapi structs

Matthew Auld (17):
      drm/i915/fbdev: fixup setting screen_size
      drm/i915: limit the async bind to bind_async_flags
      drm/i915: stop checking for NULL vma->obj
      drm/i915/gtt: reduce overzealous alignment constraints for GGTT
      drm/i915: opportunistically apply ALLOC_CONTIGIOUS
      drm/i915/lmem: don't treat small BAR as an error
      drm/i915/stolen: consider I915_BO_ALLOC_GPU_ONLY
      drm/i915: add i915_gem_object_create_region_at()
      drm/i915/ttm: wire up the object offset
      drm/i915: fixup the initial fb base on DGFX
      drm/i915/ttm: limit where we apply TTM_PL_FLAG_CONTIGUOUS
      drm/i915/migrate: move the sanity check
      drm/i915/selftests: handle more rounding
      drm/i915: consider min_page_size when migrating
      drm/i915/buddy: sanity check the size
      drm/i915/selftests: fixup min_alignment usage
      drm/i915/selftests: tweak the misaligned_case

Matthew Brost (2):
      drm/i915: Add logical mapping for video decode engines
      drm/i915/dg2: Enable Wa_14014475959 - RCS / CCS context exit

Michael Cheng (5):
      drm/i915/gt: Re-work intel_write_status_page
      drm/i915/gt: Drop invalidate_csb_entries
      drm/i915/gt: Re-work reset_csb
      drm/i915/: Re-work clflush_write32
      drm/i915/gt: replace cache_clflush_range

Ramalingam C (9):
      drm/i915/gt: use engine instance directly for offset
      drm/i915/gt: Use XY_FAST_COLOR_BLT to clear obj on graphics ver 12+
      drm/i915/gt: Optimize the migration and clear loop
      drm/i915/gt: Pass the -EINVAL when emit_pte doesn't update any PTE
      drm/i915/gt: Clear compress metadata for Flat-ccs objects
      drm/i915/selftest_migrate: Consider the possible roundup of size
      drm/i915/selftest_migrate: Check CCS meta data clear
      drm/i915/gem: Add extra pages in ttm_tt for ccs data
      drm/i915/migrate: Evict and restore the flatccs capable lmem obj

Rodrigo Vivi (3):
      drm/i915/uapi: Add query for hwconfig blob
      drm/i915/hwconfig: Add DG2 support
      Merge drm/drm-next into drm-intel-gt-next

Stuart Summers (1):
      drm/i915: Add RCS mask to GuC ADS params

Sujaritha Sundaresan (1):
      drm/i915/gt: Add sysfs throttle frequency interfaces

Thomas Hellström (3):
      drm/i915: Remove the vm open count
      drm/i915: Remove the vma refcount
      drm/i915/gem: Remove some unnecessary code

Tilak Tangudu (1):
      drm/i915: Add Wa_22011802037 force cs halt

Tomas Winkler (4):
      drm/i915/gsc: add gsc as a mei auxiliary device
      mei: add support for graphics system controller (gsc) devices
      mei: gsc: add runtime pm handlers
      drm/i915/dg2: add gsc with special gsc bar offsets

Tvrtko Ursulin (11):
      drm/i915: Prepare for multiple GTs
      drm/i915/uapi: Document DRM_I915_QUERY_HWCONFIG_BLOB
      drm/i915: Explicitly track DRM clients
      drm/i915: Make GEM contexts track DRM clients
      drm/i915: Track runtime spent in closed and unreachable GEM contexts
      drm/i915: Track all user contexts per client
      drm/i915: Track context current active time
      drm: Document fdinfo format specification
      drm/i915: Count engine instances per uabi class
      drm/i915: Expose client engine utilisation via fdinfo
      drm/i915: Fixup kerneldoc in struct i915_gem_context

Umesh Nerlige Ramappa (1):
      drm/i915/guc: Enable Wa_22011802037 for gen12 GuC based platforms

Vinay Belgaumkar (2):
      drm/i915/guc/slpc: Use i915_probe_error instead of drm_err
      drm/i915/guc: Apply Wa_16011777198

Vivek Kasireddy (1):
      drm/i915/gem: Don't evict unmappable VMAs when pinning with PIN_MAPPABLE (v2)

 Documentation/gpu/drm-usage-stats.rst              |  112 ++
 Documentation/gpu/i915.rst                         |   28 +
 Documentation/gpu/index.rst                        |    1 +
 MAINTAINERS                                        |    1 +
 drivers/gpu/drm/i915/Kconfig                       |    3 +-
 drivers/gpu/drm/i915/Makefile                      |   10 +
 drivers/gpu/drm/i915/display/intel_dpt.c           |    2 +-
 drivers/gpu/drm/i915/display/intel_fb.c            |    2 +-
 drivers/gpu/drm/i915/display/intel_fb_pin.c        |    2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c         |    4 +-
 drivers/gpu/drm/i915/display/intel_plane_initial.c |   56 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   70 +-
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |    6 +
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   15 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   14 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |    3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |    2 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |   50 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.h         |    7 +
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |    1 +
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  144 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |    4 -
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |   52 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |    1 +
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |    6 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  |   12 +-
 drivers/gpu/drm/i915/gem/selftests/mock_context.c  |    5 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |    2 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |  113 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |    4 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   12 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   29 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   15 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   24 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   13 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   40 +-
 drivers/gpu/drm/i915/gt/intel_engine_regs.h        |    1 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   13 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |   11 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |   49 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  693 +-------
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |   29 +
 drivers/gpu/drm/i915/gt/intel_gsc.c                |  224 +++
 drivers/gpu/drm/i915/gt/intel_gsc.h                |   37 +
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  223 ++-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   41 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |    4 +
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.c         |   20 +-
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.h         |    2 +-
 drivers/gpu/drm/i915/gt/intel_gt_gmch.c            |  654 ++++++++
 drivers/gpu/drm/i915/gt/intel_gt_gmch.h            |   46 +
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   13 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   18 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   40 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h      |    4 +-
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |   21 +
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c           |  122 ++
 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h           |   34 +
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        |  601 +++++++
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h        |   15 +
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   18 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   56 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   65 +-
 drivers/gpu/drm/i915/gt/intel_hwconfig.h           |   21 +
 drivers/gpu/drm/i915/gt/intel_lrc.c                |   39 +-
 drivers/gpu/drm/i915/gt/intel_lrc.h                |   27 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |  390 ++++-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |    2 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |    8 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   10 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |    7 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |    2 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  126 +-
 drivers/gpu/drm/i915/gt/intel_rps.h                |    6 +-
 drivers/gpu/drm/i915/gt/intel_rps_types.h          |   15 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |   54 +-
 drivers/gpu/drm/i915/gt/intel_sseu.h               |   50 +-
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |   30 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   21 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |   86 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   10 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |  259 ++-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |   14 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h    |    4 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h      |   15 +
 drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h      |  218 +++
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   48 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   19 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  185 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c     | 1657 ++++++++++++++++++++
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h     |   33 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |   92 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c    |  164 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |  125 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |    7 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |   56 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  645 +++++---
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |   30 +-
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          |    2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   12 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   37 +-
 drivers/gpu/drm/i915/i915_drm_client.c             |  158 ++
 drivers/gpu/drm/i915/i915_drm_client.h             |   68 +
 drivers/gpu/drm/i915/i915_drv.h                    |   25 +
 drivers/gpu/drm/i915/i915_file_private.h           |    3 +
 drivers/gpu/drm/i915/i915_gem.c                    |   89 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  297 ++--
 drivers/gpu/drm/i915/i915_gpu_error.h              |   37 +-
 drivers/gpu/drm/i915/i915_params.c                 |    3 +
 drivers/gpu/drm/i915/i915_params.h                 |    1 +
 drivers/gpu/drm/i915/i915_pci.c                    |    4 +-
 drivers/gpu/drm/i915/i915_query.c                  |   94 +-
 drivers/gpu/drm/i915/i915_reg.h                    |   18 +
 drivers/gpu/drm/i915/i915_reg_defs.h               |    2 -
 drivers/gpu/drm/i915/i915_sysfs.c                  |  310 +---
 drivers/gpu/drm/i915/i915_sysfs.h                  |    3 +
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |    4 +-
 drivers/gpu/drm/i915/i915_vma.c                    |   98 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   14 -
 drivers/gpu/drm/i915/i915_vma_resource.c           |    2 +-
 drivers/gpu/drm/i915/i915_vma_resource.h           |    6 +
 drivers/gpu/drm/i915/i915_vma_types.h              |    8 +-
 drivers/gpu/drm/i915/intel_device_info.h           |    2 +
 drivers/gpu/drm/i915/intel_memory_region.c         |    2 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |    8 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |    7 +-
 drivers/gpu/drm/i915/intel_region_ttm.h            |    1 +
 drivers/gpu/drm/i915/intel_uncore.c                |   86 +-
 drivers/gpu/drm/i915/intel_uncore.h                |    7 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   18 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |   13 +-
 drivers/gpu/drm/i915/selftests/mock_region.c       |    4 +
 drivers/misc/mei/Kconfig                           |   14 +
 drivers/misc/mei/Makefile                          |    3 +
 drivers/misc/mei/bus-fixup.c                       |   25 +
 drivers/misc/mei/gsc-me.c                          |  259 +++
 drivers/misc/mei/hw-me.c                           |   29 +-
 drivers/misc/mei/hw-me.h                           |    2 +
 include/linux/mei_aux.h                            |   19 +
 include/uapi/drm/i915_drm.h                        |  291 +++-
 143 files changed, 8161 insertions(+), 2326 deletions(-)
 create mode 100644 Documentation/gpu/drm-usage-stats.rst
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gsc.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gsc.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_gmch.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_gmch.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_hwconfig.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c
 create mode 100644 drivers/gpu/drm/i915/i915_drm_client.c
 create mode 100644 drivers/gpu/drm/i915/i915_drm_client.h
 create mode 100644 drivers/misc/mei/gsc-me.c
 create mode 100644 include/linux/mei_aux.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-03-03  7:50 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2022-03-03  7:50 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

Hi Dave & Daniel,

Here is the last feature PR for v5.18.

For new platforms we have got more DG2 enabling: small BAR foundations,
64K page support and accelerated migration. For XeHP SDV we've got flat
CCS detection and compute command streamer being added.

Disabling i915 build on PREEMPT_RT for now due to deadlocks and
warnings. Fixes to GuC data structure accesses on ARM platforms.
A couple of other GuC init and SLPC fixes.

Then the usual bits of cleanup and smaller fixes.

Regards, Joonas

***

drm-intel-gt-next-2022-03-03:

Cross-subsystem Changes:

- drm-next backmerge for buddy allocator changes

Driver Changes:

- Skip i915_perf init for DG2 as it is not yet enabled (Ram)
- Add missing workarounds for DG2 (Clint)
- Add 64K page/align support for platforms like DG2 that require it (Matt A, Ram, Bob)
- Add accelerated migration support for DG2 (Matt A)
- Add flat CCS support for XeHP SDV (Abdiel, Ram)
- Add Compute Command Streamer (CCS) engine support for XeHP SDV (Michel,
  Daniele, Aravind, Matt R)
- Don't support parallel submission on compute / render (Matt B, Matt R)

- Disable i915 build on PREEMPT_RT until RT behaviour fixed (Sebastian)
- Remove RPS interrupt support for TGL+ (Jose)
- Fix S/R with PM_EARLY for non-GTT mappable objects on DG2 (Matt, Lucas)
- Skip stolen memory init if it is fully reserved (Jose)
- Use iosys_map for GuC data structures that may be in LMEM BAR or SMEM (Lucas)
- Do not complain about stale GuC reset notifications for banned contexts (John)

- Move context descriptor fields to intel_lrc.h (Matt R)
- Start adding support for small BAR (Matt A)
- Clarify vma lifetime (Thomas)
- Simplify subplatform detection on TGL (Jose)
- Correct the param count for unset GuC SLPC param (Vinay, Umesh)
- Read RP_STATE_CAP correctly on Gen12 with GuC SLPC (Vinay)
- Initialize GuC submission locks and queues early (Daniele)
- Fix GuC flag query helper function to not modify state (John)

- Drop fake lmem support now we have real hardware available (Lucas)
- Move misplaced W/A to their correct locations (Srinivasan)
- Use get_reset_domain() helper (Tejas)
- Move context descriptor fields to intel_lrc.h (Matt R)
- Selftest improvements (Matt A)

The following changes since commit 54f43c17d681f6d9523fcfaeefc9df77993802e1:

  Merge tag 'drm-misc-next-2022-02-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2022-02-25 05:50:18 +1000)

are available in the Git repository at:

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

for you to fetch changes up to b2006061ae28fe7e84af6c9757ee89c4e505e92b:

  drm/i915/xehpsdv: Move render/compute engine reset domains related workarounds (2022-03-02 06:52:42 -0800)

----------------------------------------------------------------
Cross-subsystem Changes:

- drm-next backmerge for buddy allocator changes

Driver Changes:

- Skip i915_perf init for DG2 as it is not yet enabled (Ram)
- Add missing workarounds for DG2 (Clint)
- Add 64K page/align support for platforms like DG2 that require it (Matt A, Ram, Bob)
- Add accelerated migration support for DG2 (Matt A)
- Add flat CCS support for XeHP SDV (Abdiel, Ram)
- Add Compute Command Streamer (CCS) engine support for XeHP SDV (Michel,
  Daniele, Aravind, Matt R)
- Don't support parallel submission on compute / render (Matt B, Matt R)

- Disable i915 build on PREEMPT_RT until RT behaviour fixed (Sebastian)
- Remove RPS interrupt support for TGL+ (Jose)
- Fix S/R with PM_EARLY for non-GTT mappable objects on DG2 (Matt, Lucas)
- Skip stolen memory init if it is fully reserved (Jose)
- Use iosys_map for GuC data structures that may be in LMEM BAR or SMEM (Lucas)
- Do not complain about stale GuC reset notifications for banned contexts (John)

- Move context descriptor fields to intel_lrc.h
- Start adding support for small BAR (Matt A)
- Clarify vma lifetime (Thomas)
- Simplify subplatform detection on TGL (Jose)
- Correct the param count for unset GuC SLPC param (Vinay, Umesh)
- Read RP_STATE_CAP correctly on Gen12 with GuC SLPC (Vinay)
- Initialize GuC submission locks and queues early (Daniele)
- Fix GuC flag query helper function to not modify state (John)

- Drop fake lmem support now we have real hardware available (Lucas)
- Move misplaced W/A to their correct locations (Srinivasan)
- Use get_reset_domain() helper (Tejas)
- Move context descriptor fields to intel_lrc.h (Matt R)
- Selftest improvements (Matt A)

----------------------------------------------------------------
Abdiel Janulgue (1):
      drm/i915/lmem: Enable lmem for platforms with Flat CCS

CQ Tang (1):
      drm/i915/xehpsdv: Add has_flat_ccs to device info

Clint Taylor (1):
      drm/i915/dg2: add Wa_14014947963

Daniele Ceraolo Spurio (4):
      drm/i915/guc: Initialize GuC submission locks and queues early
      drm/i915/xehp: compute engine pipe_control
      drm/i915/xehp/guc: enable compute engine inside GuC
      drm/i915/xehp: handle fused off CCS engines

John Harrison (2):
      drm/i915/guc: Fix flag query helper function to not modify state
      drm/i915/guc: Do not complain about stale reset notifications

José Roberto de Souza (3):
      drm/i915/tgl: Simply subplatform detection
      drm/i915/rps/tgl+: Remove RPS interrupt support
      drm/i915: Check stolen memory size before calling drm_mm_init

Lucas De Marchi (15):
      drm/i915: Kill the fake lmem support
      drm/i915/gt: Add helper for shmem copy to iosys_map
      drm/i915/guc: Keep iosys_map of ads_blob around
      drm/i915/guc: Add read/write helpers for ADS blob
      drm/i915/guc: Convert golden context init to iosys_map
      drm/i915/guc: Convert policies update to iosys_map
      drm/i915/guc: Convert engine record to iosys_map
      drm/i915/guc: Convert guc_ads_private_data_reset to iosys_map
      drm/i915/guc: Convert golden context prep to iosys_map
      drm/i915/guc: Replace check for golden context size
      drm/i915/guc: Convert mapping table to iosys_map
      drm/i915/guc: Convert capture list to iosys_map
      drm/i915/guc: Convert guc_mmio_reg_state_init to iosys_map
      drm/i915/guc: Convert __guc_ads_init to iosys_map
      drm/i915/guc: Remove plain ads_blob pointer

Matt Roper (8):
      drm/i915/xehp: Define compute class and engine
      drm/i915/xehp: CCS shares the render reset domain
      drm/i915/xehp: Add Compute CS IRQ handlers
      drm/i915/xehp: CCS should use RCS setup functions
      drm/i915: Move context descriptor fields to intel_lrc.h
      drm/i915/xehp: Define context scheduling attributes in lrc descriptor
      drm/i915/xehp: Enable ccs/dual-ctx in RCU_MODE
      drm/i915/xehp: Add compute workarounds

Matthew Auld (19):
      drm/i915: enforce min GTT alignment for discrete cards
      drm/i915: support 64K GTT pages for discrete cards
      drm/i915/gtt: allow overriding the pt alignment
      drm/i915/gtt: add xehpsdv_ppgtt_insert_entry
      drm/i915/migrate: add acceleration support for DG2
      drm/i915/uapi: document behaviour for DG2 64K support
      drm/i915/ttm: fixup the mock_bo
      drm/i915: apply PM_EARLY for non-GTT mappable objects
      drm/i915: add io_size plumbing
      drm/i915/ttm: require mappable by default
      drm/i915: add I915_BO_ALLOC_GPU_ONLY
      drm/i915/buddy: track available visible size
      drm/i915/buddy: adjust res->start
      drm/i915/buddy: tweak 2big check
      drm/i915/selftests: mock test io_size
      drm/i915/ttm: make eviction mappable aware
      drm/i915/ttm: mappable migration on fault
      drm/i915/selftests: handle allocation failures
      drm/i915/selftests: exercise mmap migration

Matthew Brost (1):
      drm/i915/xehp: Don't support parallel submission on compute / render

Ramalingam C (2):
      drm/i915/perf: Skip the i915_perf_init for dg2
      drm/i915: add needs_compact_pt flag

Robert Beckett (1):
      drm/i915: add gtt misalignment test

Sebastian Andrzej Siewior (1):
      drm/i915: Depend on !PREEMPT_RT.

Srinivasan Shanmugam (2):
      drm/i915/dg2: Move misplaced 'ctx' & 'gt' wa's to engine wa list
      drm/i915/xehpsdv: Move render/compute engine reset domains related workarounds

Tejas Upadhyay (1):
      drm/i915/gt: use get_reset_domain() helper

Thomas Hellström (1):
      drm/i915: Clarify vma lifetime

Tvrtko Ursulin (1):
      Merge drm/drm-next into drm-intel-gt-next

Vinay Belgaumkar (2):
      drm/i915/guc/slpc: Correct the param count for unset param
      drm/i915/guc/slpc: Use wrapper for reading RP_STATE_CAP

 drivers/gpu/drm/i915/Kconfig                       |   1 +
 drivers/gpu/drm/i915/Kconfig.unstable              |   8 -
 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c |   2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c         |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  10 +
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  14 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  17 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |  16 +
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  17 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            | 128 +++++++-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |  64 +++-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |  21 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |   8 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 333 ++++++++++++++++++++-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |  34 ++-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               | 158 +++++++++-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   2 +
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          | 157 ++++++++--
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  11 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |   5 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  11 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |  15 +
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  25 +-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   1 +
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |  15 +-
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |  48 +--
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  29 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  35 ++-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  12 +-
 drivers/gpu/drm/i915/gt/intel_lrc.h                |  51 ++++
 drivers/gpu/drm/i915/gt/intel_migrate.c            | 196 ++++++++++--
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  17 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        | 140 ++-------
 drivers/gpu/drm/i915/gt/intel_region_lmem.h        |   3 -
 drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  17 +-
 drivers/gpu/drm/i915/gt/intel_sseu.h               |   4 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 138 ++++++---
 drivers/gpu/drm/i915/gt/shmem_utils.c              |  32 ++
 drivers/gpu/drm/i915/gt/shmem_utils.h              |   3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   7 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         | 238 ++++++++-------
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h         |   3 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  32 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |   7 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  63 ++--
 .../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c    |   4 +
 drivers/gpu/drm/i915/i915_driver.c                 |  15 -
 drivers/gpu/drm/i915/i915_drv.h                    |  30 +-
 drivers/gpu/drm/i915/i915_params.c                 |   5 -
 drivers/gpu/drm/i915/i915_params.h                 |   1 -
 drivers/gpu/drm/i915/i915_pci.c                    |   3 +
 drivers/gpu/drm/i915/i915_perf.c                   |   4 +
 drivers/gpu/drm/i915/i915_reg.h                    |  24 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  87 +++++-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h      |  13 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  86 +++++-
 drivers/gpu/drm/i915/i915_vma.h                    |   3 +
 drivers/gpu/drm/i915/intel_device_info.c           |  26 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   5 +
 drivers/gpu/drm/i915/intel_memory_region.c         |  10 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |   7 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |  21 +-
 drivers/gpu/drm/i915/intel_step.c                  |   2 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      | 222 ++++++++++++--
 .../gpu/drm/i915/selftests/intel_memory_region.c   | 159 +++++++++-
 drivers/gpu/drm/i915/selftests/mock_region.c       |  13 +-
 drivers/gpu/drm/i915/selftests/mock_region.h       |   3 +-
 include/uapi/drm/i915_drm.h                        |  45 ++-
 71 files changed, 2318 insertions(+), 627 deletions(-)

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2022-02-22 19:44     ` Lucas De Marchi
@ 2022-02-23 20:35       ` Vivi, Rodrigo
  0 siblings, 0 replies; 37+ messages in thread
From: Vivi, Rodrigo @ 2022-02-23 20:35 UTC (permalink / raw)
  To: De Marchi, Lucas, jani.nikula
  Cc: tvrtko.ursulin, dim-tools, daniel.vetter, intel-gfx, dri-devel,
	tzimmermann

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


^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2022-02-21  9:21   ` Jani Nikula
@ 2022-02-22 19:44     ` Lucas De Marchi
  2022-02-23 20:35       ` Vivi, Rodrigo
  0 siblings, 1 reply; 37+ messages in thread
From: Lucas De Marchi @ 2022-02-22 19:44 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Tvrtko Ursulin, DRM maintainer tools announcements, discussion,
	and development, Daniel Vetter, Intel Graphics Development,
	dri-devel, Thomas Zimmermann, Rodrigo Vivi

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

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2022-02-20 23:30 ` Dave Airlie
@ 2022-02-21  9:21   ` Jani Nikula
  2022-02-22 19:44     ` Lucas De Marchi
  0 siblings, 1 reply; 37+ messages in thread
From: Jani Nikula @ 2022-02-21  9:21 UTC (permalink / raw)
  To: Dave Airlie, Joonas Lahtinen
  Cc: Tvrtko Ursulin, DRM maintainer tools announcements,  discussion,
	and development, Daniel Vetter, Intel Graphics Development,
	dri-devel, Thomas Zimmermann, Rodrigo Vivi

On Mon, 21 Feb 2022, Dave Airlie <airlied@gmail.com> wrote:
> On Thu, 17 Feb 2022 at 20:26, Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com> wrote:
>>
>> Hi Dave & Daniel,
>>
>> Here is the first drm-intel-gt-next feature PR towards v5.18.
>
> Am I missing some previous drm-intel pull?
>
> /home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/gt/intel_workarounds.c:
> In function ‘rcs_engine_wa_init’:
> /home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/gt/intel_workarounds.c:2051:40:
> error: ‘XEHP_DIS_BBL_SYSPIPE’ undeclared (first use in this function)
>  2051 |   wa_masked_en(wal, GEN9_ROW_CHICKEN4, XEHP_DIS_BBL_SYSPIPE);
>       |                                        ^~~~~~~~~~~~~~~~~~~~
> /home/airlied/devel/kernel/dim/src/drivers/gpu/drm/i915/gt/intel_workarounds.c:2051:40:
> note: each undeclared identifier is reported only once for each
> function it appears in

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

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


BR,
Jani.


>
> Dave.
>>
>> For DG2 adds subplatform G12, missing workarounds and fixes GuC
>> loading on ARM64. C0/D0 stepping info added for RPL-S.
>>
>> For uAPI enables support for simple parallel submission with
>> execlists which was previously enabled only for GuC.
>>
>> Further fixes for PMU metrics when GuC is enabled, better error
>> reporting for GuC loading failures. Fix for PXP unbind splat.
>> Updates to GuC version 69.0.3 with improvements to GT reset
>> scenarios.
>>
>> The rest is mostly refactoring of the memory management code,
>> as highlights introduction of async unbinding/migration and
>> removal of short-term pinning in execbuf.
>>
>> Then a few selftest and coding style fixes.
>>
>> Regards, Joonas
>>
>> ***
>>
>> drm-intel-gt-next-2022-02-17:
>>
>> UAPI Changes:
>>
>> - Weak parallel submission support for execlists
>>
>>   Minimal implementation of the parallel submission support for
>>   execlists backend that was previously only implemented for GuC.
>>   Support one sibling non-virtual engine.
>>
>> Core Changes:
>>
>> - Two backmerges of drm/drm-next for header file renames/changes and
>>   i915_regs reorganization
>>
>> Driver Changes:
>>
>> - Add new DG2 subplatform: DG2-G12 (Matt R)
>> - Add new DG2 workarounds (Matt R, Ram, Bruce)
>> - Handle pre-programmed WOPCM registers for DG2+ (Daniele)
>> - Update guc shim control programming on XeHP SDV+ (Daniele)
>> - Add RPL-S C0/D0 stepping information (Anusha)
>> - Improve GuC ADS initialization to work on ARM64 on dGFX (Lucas)
>>
>> - Fix KMD and GuC race on accessing PMU busyness (Umesh)
>> - Use PM timestamp instead of RING TIMESTAMP for reference in PMU with GuC (Umesh)
>> - Report error on invalid reset notification from GuC (John)
>> - Avoid WARN splat by holding RPM wakelock during PXP unbind (Juston)
>> - Fixes to parallel submission implementation (Matt B.)
>> - Improve GuC loading status check/error reports (John)
>> - Tweak TTM LRU priority hint selection (Matt A.)
>> - Align the plane_vma to min_page_size of stolen mem (Ram)
>>
>> - Introduce vma resources and implement async unbinding (Thomas)
>> - Use struct vma_resource instead of struct vma_snapshot (Thomas)
>> - Return some TTM accel move errors instead of trying memcpy move (Thomas)
>> - Fix a race between vma / object destruction and unbinding (Thomas)
>> - Remove short-term pins from execbuf (Maarten)
>> - Update to GuC version 69.0.3 (John, Michal Wa.)
>> - Improvements to GT reset paths in GuC backend (Matt B.)
>> - Use shrinker_release_pages instead of writeback in shmem object hooks (Matt A., Tvrtko)
>> - Use trylock instead of blocking lock when freeing GEM objects (Maarten)
>> - Allocate intel_engine_coredump_alloc with ALLOW_FAIL (Matt B.)
>> - Fixes to object unmapping and purging (Matt A)
>> - Check for wedged device in GuC backend (John)
>> - Avoid lockdep splat by locking dpt_obj around set_cache_level (Maarten)
>> - Allow dead vm to unbind vma's without lock (Maarten)
>> - s/engine->i915/i915/ for DG2 engine workarounds (Matt R)
>>
>> - Use to_gt() helper for GGTT accesses (Michal Wi.)
>> - Selftest improvements (Matt B., Thomas, Ram)
>> - Coding style and compiler warning fixes (Matt B., Jasmine, Andi, Colin, Gustavo, Dan)
>>
>> The following changes since commit 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc:
>>
>>   Merge tag 'drm-misc-next-2022-01-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2022-02-01 19:02:41 +1000)
>>
>> are available in the Git repository at:
>>
>>   git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-02-17
>>
>> for you to fetch changes up to 154cfae6158141b18d65abb0db679bb51a8294e7:
>>
>>   drm/i915/dg2: Add Wa_22011100796 (2022-02-11 17:11:44 +0530)
>>
>> ----------------------------------------------------------------
>> UAPI Changes:
>>
>> - Weak parallel submission support for execlists
>>
>>   Minimal implementation of the parallel submission support for
>>   execlists backend that was previously only implemented for GuC.
>>   Support one sibling non-virtual engine.
>>
>> Core Changes:
>>
>> - Two backmerges of drm/drm-next for header file renames/changes and
>>   i915_regs reorganization
>>
>> Driver Changes:
>>
>> - Add new DG2 subplatform: DG2-G12 (Matt R)
>> - Add new DG2 workarounds (Matt R, Ram, Bruce)
>> - Handle pre-programmed WOPCM registers for DG2+ (Daniele)
>> - Update guc shim control programming on XeHP SDV+ (Daniele)
>> - Add RPL-S C0/D0 stepping information (Anusha)
>> - Improve GuC ADS initialization to work on ARM64 on dGFX (Lucas)
>>
>> - Fix KMD and GuC race on accessing PMU busyness (Umesh)
>> - Use PM timestamp instead of RING TIMESTAMP for reference in PMU with GuC (Umesh)
>> - Report error on invalid reset notification from GuC (John)
>> - Avoid WARN splat by holding RPM wakelock during PXP unbind (Juston)
>> - Fixes to parallel submission implementation (Matt B.)
>> - Improve GuC loading status check/error reports (John)
>> - Tweak TTM LRU priority hint selection (Matt A.)
>> - Align the plane_vma to min_page_size of stolen mem (Ram)
>>
>> - Introduce vma resources and implement async unbinding (Thomas)
>> - Use struct vma_resource instead of struct vma_snapshot (Thomas)
>> - Return some TTM accel move errors instead of trying memcpy move (Thomas)
>> - Fix a race between vma / object destruction and unbinding (Thomas)
>> - Remove short-term pins from execbuf (Maarten)
>> - Update to GuC version 69.0.3 (John, Michal Wa.)
>> - Improvements to GT reset paths in GuC backend (Matt B.)
>> - Use shrinker_release_pages instead of writeback in shmem object hooks (Matt A., Tvrtko)
>> - Use trylock instead of blocking lock when freeing GEM objects (Maarten)
>> - Allocate intel_engine_coredump_alloc with ALLOW_FAIL (Matt B.)
>> - Fixes to object unmapping and purging (Matt A)
>> - Check for wedged device in GuC backend (John)
>> - Avoid lockdep splat by locking dpt_obj around set_cache_level (Maarten)
>> - Allow dead vm to unbind vma's without lock (Maarten)
>> - s/engine->i915/i915/ for DG2 engine workarounds (Matt R)
>>
>> - Use to_gt() helper for GGTT accesses (Michal Wi.)
>> - Selftest improvements (Matt B., Thomas, Ram)
>> - Coding style and compiler warning fixes (Matt B., Jasmine, Andi, Colin, Gustavo, Dan)
>>
>> ----------------------------------------------------------------
>> Andi Shyti (2):
>>       drm/i915: Remove unused i915->ggtt
>>       drm/i915: fix header file inclusion for might_alloc()
>>
>> Anusha Srivatsa (1):
>>       drm/i915/rpl-s: Add stepping info
>>
>> Bruce Chang (1):
>>       drm/i915/dg2: Add Wa_22011100796
>>
>> Colin Ian King (1):
>>       i915: make array flex_regs static const
>>
>> Dan Carpenter (1):
>>       drm/i915: delete shadow "ret" variable
>>
>> Daniele Ceraolo Spurio (2):
>>       drm/i915/wopcm: Handle pre-programmed WOPCM registers
>>       drm/i915/guc: Update guc shim control programming on newer platforms
>>
>> Gustavo A. R. Silva (1):
>>       drm/i915/guc: Use struct_size() helper in kmalloc()
>>
>> Jasmine Newsome (1):
>>       drm/i915/gem: Use local pointer ttm for __i915_ttm_move
>>
>> John Harrison (5):
>>       drm/i915/guc: Report error on invalid reset notification
>>       drm/i915/guc: Check for wedged before doing stuff
>>       drm/i915/guc: Temporarily bump the GuC load timeout
>>       drm/i915/guc: Update to GuC version 69.0.3
>>       drm/i915/guc: Improve GuC loading status check/error reports
>>
>> Joonas Lahtinen (1):
>>       Merge drm/drm-next into drm-intel-gt-next
>>
>> Juston Li (1):
>>       drm/i915/pxp: Hold RPM wakelock during PXP unbind
>>
>> Lucas De Marchi (2):
>>       drm/i915/guc: Prepare for error propagation
>>       drm/i915/guc: Use a single pass to calculate regset
>>
>> Maarten Lankhorst (8):
>>       drm/i915: Call i915_gem_evict_vm in vm_fault_gtt to prevent new ENOSPC errors, v2.
>>       drm/i915: Add locking to i915_gem_evict_vm(), v3.
>>       drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2.
>>       drm/i915: Add i915_vma_unbind_unlocked, and take obj lock for i915_vma_unbind, v2.
>>       drm/i915: Remove support for unlocked i915_vma unbind
>>       drm/i915: Remove short-term pins from execbuf, v6.
>>       drm/i915: Lock dpt_obj around set_cache_level, v2.
>>       drm/i915: Allow dead vm to unbind vma's without lock.
>>
>> Matt Roper (4):
>>       drm/i915/dg2: Add Wa_18018781329
>>       drm/i915/dg2: Add Wa_14015227452
>>       drm/i915/dg2: s/engine->i915/i915/ for engine workarounds
>>       drm/i915: Introduce G12 subplatform of DG2
>>
>> Matthew Auld (7):
>>       drm/i915: remove writeback hook
>>       drm/i915: clean up shrinker_release_pages
>>       drm/i915: don't call free_mmap_offset when purging
>>       drm/i915/ttm: only fault WILLNEED objects
>>       drm/i915/ttm: add unmap_virtual callback
>>       drm/i915/ttm: ensure we unmap when purging
>>       drm/i915/ttm: tweak priority hint selection
>>
>> Matthew Brost (11):
>>       drm/i915/execlists: Weak parallel submission support for execlists
>>       drm/i915: Fix possible uninitialized variable in parallel extension
>>       drm/i915: Increment composite fence seqno
>>       drm/i915/selftests: Add a cancel request selftest that triggers a reset
>>       drm/i915/guc: Remove hacks for reset and schedule disable G2H being received out of order
>>       drm/i915: Allocate intel_engine_coredump_alloc with ALLOW_FAIL
>>       drm/i915/guc: Add work queue to trigger a GT reset
>>       drm/i915/guc: Flush G2H handler during a GT reset
>>       drm/i915: Lock timeline mutex directly in error path of eb_pin_timeline
>>       drm/i915/guc: Ensure multi-lrc fini breadcrumb math is correct
>>       drm/i915/selftests: Use less in contexts steal guc id test
>>
>> Michał Winiarski (5):
>>       drm/i915/gt: Use to_gt() helper for GGTT accesses
>>       drm/i915: Use to_gt() helper for GGTT accesses
>>       drm/i915/gem: Use to_gt() helper for GGTT accesses
>>       drm/i915/display: Use to_gt() helper for GGTT accesses
>>       drm/i915/selftests: Use to_gt() helper for GGTT accesses
>>
>> Ramalingam C (3):
>>       drm/i915/dg2: Add Wa_22011450934
>>       drm/i915: align the plane_vma to min_page_size of stolen mem
>>       drm/i915: More gt idling time with guc submission
>>
>> Thomas Hellström (9):
>>       drm/i915: Initial introduction of vma resources
>>       drm/i915: Use the vma resource as argument for gtt binding / unbinding
>>       drm/i915: Don't pin the object pages during pending vma binds
>>       drm/i915: Use vma resources for async unbinding
>>       drm/i915: Asynchronous migration selftest
>>       drm/i915: Use struct vma_resource instead of struct vma_snapshot
>>       drm/i915: Fix vma resource freeing
>>       drm/i915: Fix a race between vma / object destruction and unbinding
>>       drm/i915/ttm: Return some errors instead of trying memcpy move
>>
>> Tvrtko Ursulin (1):
>>       Merge drm/drm-next into drm-intel-gt-next
>>
>> Umesh Nerlige Ramappa (2):
>>       drm/i915/pmu: Use PM timestamp instead of RING TIMESTAMP for reference
>>       drm/i915/pmu: Fix KMD and GuC race on accessing busyness
>>
>>  Documentation/gpu/i915.rst                         |   1 +
>>  drivers/gpu/drm/i915/Makefile                      |   2 +-
>>  drivers/gpu/drm/i915/display/intel_dpt.c           |  33 +-
>>  drivers/gpu/drm/i915/display/intel_fb_pin.c        |   8 +-
>>  drivers/gpu/drm/i915/display/intel_fbc.c           |   2 +-
>>  drivers/gpu/drm/i915/display/intel_fbdev.c         |   2 +-
>>  drivers/gpu/drm/i915/display/intel_plane_initial.c |   7 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_context.c        |  11 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_context.h        |   2 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     | 248 ++++++------
>>  drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  36 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_object.c         |  18 +
>>  drivers/gpu/drm/i915/gem/i915_gem_object.h         |   4 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  51 ++-
>>  drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  10 -
>>  drivers/gpu/drm/i915/gem/i915_gem_pm.c             |   2 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |  17 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  30 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |   8 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |  15 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  16 +-
>>  drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       |  27 +-
>>  drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |  39 +-
>>  .../drm/i915/gem/selftests/i915_gem_client_blt.c   |   4 +-
>>  .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |   2 +-
>>  .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  | 192 +++++++++-
>>  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  25 +-
>>  .../gpu/drm/i915/gem/selftests/i915_gem_object.c   |   2 +-
>>  drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  19 +-
>>  drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  37 +-
>>  drivers/gpu/drm/i915/gt/intel_context.c            |   4 +-
>>  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   9 +-
>>  .../gpu/drm/i915/gt/intel_execlists_submission.c   |  38 ++
>>  drivers/gpu/drm/i915/gt/intel_ggtt.c               | 133 ++++---
>>  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   7 +-
>>  drivers/gpu/drm/i915/gt/intel_gt.c                 |   7 +-
>>  drivers/gpu/drm/i915/gt/intel_gt.h                 |   2 +-
>>  drivers/gpu/drm/i915/gt/intel_gtt.c                |   4 +
>>  drivers/gpu/drm/i915/gt/intel_gtt.h                |  19 +-
>>  drivers/gpu/drm/i915/gt/intel_lrc.c                |  32 ++
>>  drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  22 +-
>>  drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   4 +-
>>  drivers/gpu/drm/i915/gt/intel_reset.c              |   9 +
>>  drivers/gpu/drm/i915/gt/intel_workarounds.c        |  39 +-
>>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   2 +-
>>  drivers/gpu/drm/i915/gt/selftest_reset.c           |   2 +-
>>  drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |  80 ++--
>>  drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h    |  23 ++
>>  drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h      |  82 ++++
>>  drivers/gpu/drm/i915/gt/uc/intel_guc.c             | 126 ++++++-
>>  drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  25 ++
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         | 204 +++++++---
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          | 143 +++----
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  38 +-
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  37 +-
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |  31 +-
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |   3 +
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |   7 +-
>>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 262 +++++++++----
>>  drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   1 +
>>  drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  31 +-
>>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  43 ++-
>>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   2 +-
>>  drivers/gpu/drm/i915/gt/uc/selftest_guc.c          |   2 +-
>>  drivers/gpu/drm/i915/gvt/aperture_gm.c             |   2 +-
>>  drivers/gpu/drm/i915/gvt/dmabuf.c                  |   2 +-
>>  drivers/gpu/drm/i915/i915_debugfs.c                |   7 +-
>>  drivers/gpu/drm/i915/i915_driver.c                 |  10 +-
>>  drivers/gpu/drm/i915/i915_drv.h                    |  32 +-
>>  drivers/gpu/drm/i915/i915_gem.c                    |  37 +-
>>  drivers/gpu/drm/i915/i915_gem_evict.c              | 101 ++++-
>>  drivers/gpu/drm/i915/i915_gem_gtt.c                |  16 +-
>>  drivers/gpu/drm/i915/i915_gem_gtt.h                |   4 +
>>  drivers/gpu/drm/i915/i915_getparam.c               |   2 +-
>>  drivers/gpu/drm/i915/i915_gpu_error.c              |  89 ++---
>>  drivers/gpu/drm/i915/i915_module.c                 |   3 +
>>  drivers/gpu/drm/i915/i915_pci.c                    |   1 +
>>  drivers/gpu/drm/i915/i915_perf.c                   |   8 +-
>>  drivers/gpu/drm/i915/i915_reg.h                    |  12 +-
>>  drivers/gpu/drm/i915/i915_request.c                |  12 +-
>>  drivers/gpu/drm/i915/i915_request.h                |   6 +-
>>  drivers/gpu/drm/i915/i915_vgpu.c                   |   2 +-
>>  drivers/gpu/drm/i915/i915_vma.c                    | 376 +++++++++++++-----
>>  drivers/gpu/drm/i915/i915_vma.h                    |  34 +-
>>  drivers/gpu/drm/i915/i915_vma_resource.c           | 418 +++++++++++++++++++++
>>  drivers/gpu/drm/i915/i915_vma_resource.h           | 234 ++++++++++++
>>  drivers/gpu/drm/i915/i915_vma_snapshot.c           | 134 -------
>>  drivers/gpu/drm/i915/i915_vma_snapshot.h           | 112 ------
>>  drivers/gpu/drm/i915/i915_vma_types.h              |  19 +-
>>  drivers/gpu/drm/i915/intel_device_info.h           |   4 +-
>>  drivers/gpu/drm/i915/intel_step.c                  |  15 +
>>  drivers/gpu/drm/i915/intel_wopcm.c                 |  42 ++-
>>  drivers/gpu/drm/i915/selftests/i915_gem.c          |   8 +-
>>  drivers/gpu/drm/i915/selftests/i915_gem_evict.c    |  28 +-
>>  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      | 209 +++++++----
>>  drivers/gpu/drm/i915/selftests/i915_request.c      | 119 +++++-
>>  drivers/gpu/drm/i915/selftests/i915_vma.c          |  30 +-
>>  drivers/gpu/drm/i915/selftests/igt_flush_test.c    |   2 +-
>>  drivers/gpu/drm/i915/selftests/mock_gem_device.c   |  11 +-
>>  drivers/gpu/drm/i915/selftests/mock_gtt.c          |  21 +-
>>  drivers/gpu/drm/i915/selftests/mock_gtt.h          |   3 +-
>>  101 files changed, 3149 insertions(+), 1359 deletions(-)
>>  create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
>>  create mode 100644 drivers/gpu/drm/i915/i915_vma_resource.c
>>  create mode 100644 drivers/gpu/drm/i915/i915_vma_resource.h
>>  delete mode 100644 drivers/gpu/drm/i915/i915_vma_snapshot.c
>>  delete mode 100644 drivers/gpu/drm/i915/i915_vma_snapshot.h

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2022-02-17 10:26 Joonas Lahtinen
@ 2022-02-20 23:30 ` Dave Airlie
  2022-02-21  9:21   ` Jani Nikula
  0 siblings, 1 reply; 37+ messages in thread
From: Dave Airlie @ 2022-02-20 23:30 UTC (permalink / raw)
  To: Joonas Lahtinen
  Cc: Tvrtko Ursulin, DRM maintainer tools announcements, discussion,
	and development, Daniel Vetter, Intel Graphics Development,
	dri-devel, Thomas Zimmermann, Rodrigo Vivi

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

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2022-02-17 10:26 Joonas Lahtinen
  2022-02-20 23:30 ` Dave Airlie
  0 siblings, 1 reply; 37+ messages in thread
From: Joonas Lahtinen @ 2022-02-17 10:26 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
	Rodrigo Vivi, intel-gfx

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

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-12-23 12:47 Tvrtko Ursulin
  0 siblings, 0 replies; 37+ messages in thread
From: Tvrtko Ursulin @ 2021-12-23 12:47 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx


Hi Dave, Daniel,

Here goes the final PR towards 5.17.

Effectively two largest logical items in this pull request are bugfixes, mainly
in the GuC submission backend, and continuation of the locking refactoring being
done to make both VMA and backing store handling use dma_resv locking. This is
now using the dma_resv locking in areas like the shrinker and freeing of
the object backing store.

From the smaller items we have a couple of performance optimisation regarding
access to GuC log and speed of firmware loading, sanity checking of memory
regions on driver load, plus option to do a full test via a modparam
(i915.memtest=1), and some prep work for future platforms like DG2 and XeHP SDV.

Regards,

Tvrtko

***

drm-intel-gt-next-2021-12-23:

Driver Changes:

- Added bits of DG2 support around page table handling (Stuart Summers, Matthew Auld)
- Fixed wakeref leak in PMU busyness during reset in GuC mode (Umesh Nerlige Ramappa)
- Fixed debugfs access crash if GuC failed to load (John Harrison)
- Bring back GuC error log to error capture, undoing accidental earlier breakage (Thomas Hellström)
- Fixed memory leak in error capture caused by earlier refactoring (Thomas Hellström)
- Exclude reserved stolen from driver use (Chris Wilson)
- Add memory region sanity checking and optional full test (Chris Wilson)
- Fixed buffer size truncation in TTM shmemfs backend (Robert Beckett)
- Use correct lock and don't overwrite internal data structures when stealing GuC context ids (Matthew Brost)
- Don't hog IRQs when destroying GuC contexts (John Harrison)
- Make GuC to Host communication more robust (Matthew Brost)
- Continuation of locking refactoring around VMA and backing store handling (Maarten Lankhorst)
- Improve performance of reading GuC log from debugfs (John Harrison)
- Log when GuC fails to reset an engine (John Harrison)
- Speed up GuC/HuC firmware loading by requesting RP0 (Vinay Belgaumkar)
- Further work on asynchronous VMA unbinding (Thomas Hellström, Christian König)

- Refactor GuC/HuC firmware handling to prepare for future platforms (John Harrison)
- Prepare for future different GuC/HuC firmware signing key sizes (Daniele Ceraolo Spurio, Michal Wajdeczko)
- Add noreclaim annotations (Matthew Auld)
- Remove racey GEM_BUG_ON between GPU reset and GuC communication handling (Matthew Brost)
- Refactor i915->gt with to_gt(i915) to prepare for future platforms (Michał Winiarski, Andi Shyti)
- Increase GuC log size for CONFIG_DEBUG_GEM (John Harrison)

- Fixed engine busyness in selftests when in GuC mode (Umesh Nerlige Ramappa)
- Make engine parking work with PREEMPT_RT (Sebastian Andrzej Siewior)
- Replace X86_FEATURE_PAT with pat_enabled() (Lucas De Marchi)
- Selftest for stealing of guc ids (Matthew Brost)
The following changes since commit 20cddfcc82e642e4682c48af91f0702fbbd623a0:

  drm/i915/gt: Use hw_engine_masks as reset_domains (2021-12-08 18:27:05 -0500)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-12-23

for you to fetch changes up to 6cb12fbda1c2e2fcb6d3adfe01f18eef6812e278:

  drm/i915: Use trylock instead of blocking lock for __i915_gem_free_objects. (2021-12-23 12:30:27 +0100)

----------------------------------------------------------------
Driver Changes:

- Added bits of DG2 support around page table handling (Stuart Summers, Matthew Auld)
- Fixed wakeref leak in PMU busyness during reset in GuC mode (Umesh Nerlige Ramappa)
- Fixed debugfs access crash if GuC failed to load (John Harrison)
- Bring back GuC error log to error capture, undoing accidental earlier breakage (Thomas Hellström)
- Fixed memory leak in error capture caused by earlier refactoring (Thomas Hellström)
- Exclude reserved stolen from driver use (Chris Wilson)
- Add memory region sanity checking and optional full test (Chris Wilson)
- Fixed buffer size truncation in TTM shmemfs backend (Robert Beckett)
- Use correct lock and don't overwrite internal data structures when stealing GuC context ids (Matthew Brost)
- Don't hog IRQs when destroying GuC contexts (John Harrison)
- Make GuC to Host communication more robust (Matthew Brost)
- Continuation of locking refactoring around VMA and backing store handling (Maarten Lankhorst)
- Improve performance of reading GuC log from debugfs (John Harrison)
- Log when GuC fails to reset an engine (John Harrison)
- Speed up GuC/HuC firmware loading by requesting RP0 (Vinay Belgaumkar)
- Further work on asynchronous VMA unbinding (Thomas Hellström, Christian König)

- Refactor GuC/HuC firmware handling to prepare for future platforms (John Harrison)
- Prepare for future different GuC/HuC firmware signing key sizes (Daniele Ceraolo Spurio, Michal Wajdeczko)
- Add noreclaim annotations (Matthew Auld)
- Remove racey GEM_BUG_ON between GPU reset and GuC communication handling (Matthew Brost)
- Refactor i915->gt with to_gt(i915) to prepare for future platforms (Michał Winiarski, Andi Shyti)
- Increase GuC log size for CONFIG_DEBUG_GEM (John Harrison)

- Fixed engine busyness in selftests when in GuC mode (Umesh Nerlige Ramappa)
- Make engine parking work with PREEMPT_RT (Sebastian Andrzej Siewior)
- Replace X86_FEATURE_PAT with pat_enabled() (Lucas De Marchi)
- Selftest for stealing of guc ids (Matthew Brost)

----------------------------------------------------------------
Andi Shyti (3):
      drm/i915/selftests: Use to_gt() helper
      drm/i915/pxp: Use to_gt() helper
      drm/i915: Rename i915->gt to i915->gt0

Chris Wilson (3):
      drm/i915: Exclude reserved stolen from driver use
      drm/i915: Sanitycheck device iomem on probe
      drm/i915: Test all device memory on probing

Christian König (1):
      drm/i915: remove questionable fence optimization during copy

Daniele Ceraolo Spurio (2):
      drm/i915/uc: correctly track uc_fw init failure
      drm/i915/guc: support bigger RSA keys

John Harrison (6):
      drm/i915/uc: Allow platforms to have GuC but not HuC
      drm/i915/guc: Don't go bang in GuC log if no GuC
      drm/i915/guc: Don't hog IRQs when destroying contexts
      drm/i915/guc: Speed up GuC log dumps
      drm/i915/guc: Increase GuC log size for CONFIG_DEBUG_GEM
      drm/i915/guc: Flag an error if an engine reset fails

Lucas De Marchi (1):
      drm/i915: replace X86_FEATURE_PAT with pat_enabled()

Maarten Lankhorst (11):
      drm/i915: Remove unused bits of i915_vma/active api
      drm/i915: Change shrink ordering to use locking around unbinding.
      drm/i915: Remove pages_mutex and intel_gtt->vma_ops.set/clear_pages members, v3.
      drm/i915: Take object lock in i915_ggtt_pin if ww is not set
      drm/i915: Force ww lock for i915_gem_object_ggtt_pin_ww, v2.
      drm/i915: Ensure gem_contexts selftests work with unbind changes, v2.
      drm/i915: Ensure i915_vma tests do not get -ENOSPC with the locking changes.
      drm/i915: Trylock the object when shrinking
      drm/i915: Require object lock when freeing pages during destruction
      drm/i915: Add ww ctx to i915_gem_object_trylock
      drm/i915: Use trylock instead of blocking lock for __i915_gem_free_objects.

Matthew Auld (4):
      drm/i915/xehpsdv: set min page-size to 64K
      drm/i915/gtt/xehpsdv: move scratch page to system memory
      drm/i915: enforce min page size for scratch
      drm/i915/debugfs: add noreclaim annotations

Matthew Brost (6):
      drm/i915/guc: Use correct context lock when callig clr_context_registered
      drm/i915/guc: Only assign guc_id.id when stealing guc_id
      drm/i915/guc: Remove racey GEM_BUG_ON
      drm/i915/guc: Add extra debug on CT deadlock
      drm/i915/guc: Kick G2H tasklet if no credits
      drm/i915/guc: Selftest for stealing of guc ids

Michal Wajdeczko (1):
      drm/i915/uc: Prepare for different firmware key sizes

Michał Winiarski (7):
      drm/i915: Store backpointer to GT in uncore
      drm/i915: Introduce to_gt() helper
      drm/i915/display: Use to_gt() helper
      drm/i915/gt: Use to_gt() helper
      drm/i915/gem: Use to_gt() helper
      drm/i915/gvt: Use to_gt() helper
      drm/i915: Use to_gt() helper

Robert Beckett (1):
      drm/i915/ttm: fix large buffer population trucation

Sebastian Andrzej Siewior (1):
      drm/i915: Don't disable interrupts and pretend a lock as been acquired in __timeline_mark_lock().

Stuart Summers (1):
      drm/i915: Add has_64k_pages flag

Thomas Hellström (5):
      drm/i915: Fix coredump of perma-pinned vmas
      drm/i915: Don't leak the capture list items
      drm/i915: Avoid using the i915_fence_array when collecting dependencies
      drm/i915: Break out the i915_deps utility
      drm/i915: Require the vm mutex for i915_vma_bind()

Umesh Nerlige Ramappa (2):
      drm/i915/pmu: Wait longer for busyness data to be available from GuC
      drm/i915/pmu: Fix wakeref leak in PMU busyness during reset

Vinay Belgaumkar (1):
      drm/i915/guc: Request RP0 before loading firmware

 drivers/gpu/drm/i915/Makefile                      |   1 +
 drivers/gpu/drm/i915/display/intel_atomic_plane.c  |   4 +-
 drivers/gpu/drm/i915/display/intel_display.c       |  20 +-
 drivers/gpu/drm/i915/display/intel_dpt.c           |   4 +-
 drivers/gpu/drm/i915/display/intel_overlay.c       |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  22 +-
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  54 ++-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  10 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  17 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   8 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  46 ++-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  11 +-
 drivers/gpu/drm/i915/gem/i915_gem_throttle.c       |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       | 333 ++-------------
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |   2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |   4 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |   2 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  69 ++--
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  |   2 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  26 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  16 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  23 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   3 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   1 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |  40 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |   2 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               | 353 +---------------
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  11 +-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   1 +
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   7 +-
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.h         |  21 +-
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  27 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   9 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |  24 +-
 drivers/gpu/drm/i915/gt/intel_migrate.h            |   9 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  12 -
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   5 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  71 +++-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   2 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   2 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |  12 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |   2 +-
 drivers/gpu/drm/i915/gt/selftest_engine.c          |   2 +-
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |   4 +-
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   4 +-
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |   2 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |   6 +-
 drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   8 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   2 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   2 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |   6 +-
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |   2 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           |   2 +-
 drivers/gpu/drm/i915/gt/selftest_ring_submission.c |   4 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            |   6 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   6 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |   4 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  12 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |  18 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  33 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |   5 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c |  62 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |   2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  85 ++--
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |  75 +---
 drivers/gpu/drm/i915/gt/uc/intel_huc.h             |   2 -
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |   9 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           | 188 +++++++--
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |  18 +-
 drivers/gpu/drm/i915/gt/uc/selftest_guc.c          | 175 +++++++-
 .../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c    |   2 +-
 drivers/gpu/drm/i915/gvt/gvt.c                     |   2 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   2 +-
 drivers/gpu/drm/i915/i915_active.c                 |  28 +-
 drivers/gpu/drm/i915/i915_active.h                 |  17 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |  41 +-
 drivers/gpu/drm/i915/i915_debugfs_params.c         |   4 +-
 drivers/gpu/drm/i915/i915_deps.c                   | 237 +++++++++++
 drivers/gpu/drm/i915/i915_deps.h                   |  45 ++
 drivers/gpu/drm/i915/i915_drv.c                    |  31 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  28 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  46 ++-
 drivers/gpu/drm/i915/i915_getparam.c               |  10 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  13 +-
 drivers/gpu/drm/i915/i915_irq.c                    |  56 +--
 drivers/gpu/drm/i915/i915_params.c                 |   3 +
 drivers/gpu/drm/i915/i915_params.h                 |   1 +
 drivers/gpu/drm/i915/i915_pci.c                    |   2 +
 drivers/gpu/drm/i915/i915_perf.c                   |   2 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |  14 +-
 drivers/gpu/drm/i915/i915_query.c                  |   2 +-
 drivers/gpu/drm/i915/i915_reg.h                    |   4 +
 drivers/gpu/drm/i915/i915_request.c                |  23 ++
 drivers/gpu/drm/i915/i915_request.h                |   5 +-
 drivers/gpu/drm/i915/i915_sysfs.c                  |  22 +-
 drivers/gpu/drm/i915/i915_vma.c                    | 459 ++++++++++++++++++---
 drivers/gpu/drm/i915/i915_vma.h                    |   5 +-
 drivers/gpu/drm/i915/i915_vma_types.h              |   1 -
 drivers/gpu/drm/i915/intel_device_info.h           |   1 +
 drivers/gpu/drm/i915/intel_gvt.c                   |   2 +-
 drivers/gpu/drm/i915/intel_memory_region.c         | 128 ++++++
 drivers/gpu/drm/i915/intel_uncore.c                |   9 +-
 drivers/gpu/drm/i915/intel_uncore.h                |   3 +-
 drivers/gpu/drm/i915/intel_wopcm.c                 |   2 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c           |   4 +-
 drivers/gpu/drm/i915/selftests/i915_active.c       |   2 +-
 drivers/gpu/drm/i915/selftests/i915_gem.c          |   2 +-
 drivers/gpu/drm/i915/selftests/i915_gem_evict.c    |   6 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  18 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |   2 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |  10 +-
 drivers/gpu/drm/i915/selftests/i915_selftest.c     |   4 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |  17 +-
 drivers/gpu/drm/i915/selftests/igt_flush_test.c    |   2 +-
 drivers/gpu/drm/i915/selftests/igt_live_test.c     |   4 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |   4 +-
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |   2 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |  32 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c          |  12 +-
 drivers/gpu/drm/i915/selftests/mock_uncore.c       |   2 +-
 125 files changed, 2058 insertions(+), 1371 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_deps.c
 create mode 100644 drivers/gpu/drm/i915/i915_deps.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-12-09 13:14 Tvrtko Ursulin
  0 siblings, 0 replies; 37+ messages in thread
From: Tvrtko Ursulin @ 2021-12-09 13:14 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Tvrtko Ursulin, dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx


Hi Dave, Daniel,

Here goes the first PR towards 5.17.

On the bugfixing front most user visible items are a fix for GPU hangs caused by
certain media and OpenCL workloads applicable from Gen9 (Skylake) onward, a fix
for GPU hangs in Gnome shell on Tigerlake platforms and a fix for runtime power
management handling in the PXP code.

Other than that there is a bunch of bugfixes relating to the GuC backend
(locking, error capture, engine resets, incorrect error handling in the uapi
entry points, selftest timeout increases where required, removing a tracepoint
field).

Continuing with the GuC but on the feature front, it has gained support for
wait boosting and accurate engine busyness statistics bringing it closer to
parity with the existing driver paths.

Among other fixes, most interesting ones are closing the missed async clflush
under memory pressure corner case, making sure MOCS cannot be used to bypass the
last level cache when reading the scratch page and improving the robustness of
error capture under memory pressure.

With regards to new platform support a few DG2 and XeHP SDV workarounds have
arrived, together with some fixes for DG2 buffer migration. Also some
code refactoring happened to prepare for more future platforms.

Work on discrete memory enablement and TTM has continued with good pace, both
by fixing code previously merged and by adding new functionality. Failsafe and
asynchronous migration would be the headline features here, fixing both
possible security issues and also improving eviction performance.

TTM backend has also gained support for cached system memory which improves
performance during shrinking and prepares the code base for using TTM with
integrated GPUs.

Other than these headline features and fixes, there is a bunch of smaller
cleanups and further fixups as usual.

There are also two drm-next backmarges from the rc2 timeframe which Thomas and
Maarten needed for their feature work on async migration and ongoing driver
refactoring.

Regards,

Tvrtko

***

drm-intel-gt-next-2021-12-09:

Core Changes:

- Fix PENDING_ERROR leak in dma_fence_array_signaled() (Thomas Hellström)

Driver Changes:

- Fix runtime PM handling during PXP suspend (Tejas Upadhyay)
- Improve eviction performance on discrete by implementing async TTM moves (Thomas Hellström, Maarten Lankhorst)
- Improve robustness of error capture under memory pressure (Thomas Hellström)
- Fix GuC PMU versus GPU reset handling (Umesh Nerlige Ramappa)
- Use per device iommu check (Tvrtko Ursulin)
- Make error capture work with async migration (Thomas Hellström)
- Revert incorrect implementation of Wa_1508744258 causing hangs (José Roberto de Souza)
- Disable coarse power gating on some DG2 steppings workaround (Matt Roper)
- Add IC cache invalidation workaround on DG2 (Ramalingam C)
- Move two Icelake workarounds to the right place (Raviteja Goud Talla)
- Fix error pointer dereference in i915_gem_do_execbuffer() (Dan Carpenter)
- Fixup a couple of generic and DG2 specific issues in migration code (Matthew Auld)

- Fix kernel-doc warnings in i915_drm_object.c (Randy Dunlap)
- Drop stealing of bits from i915_sw_fence function pointer (Matthew Brost)
- Introduce new macros for i915 PTE (Michael Cheng)
- Prep work for engine reset by reset domain lookup (Tejas Upadhyay)

- Fixup drm-intel-gt-next build failure (Matthew Auld)
- Fix live_engine_busy_stats selftests in GuC mode (Umesh Nerlige Ramappa)
- Remove dma_resv_prune (Maarten Lankhorst)
- Preserve huge pages enablement after driver reload (Matthew Auld)
- Fix a NULL pointer dereference in igt_request_rewind() (selftests) (Zhou Qingyang)
- Add workaround numbers to GEN7_COMMON_SLICE_CHICKEN1 whitelisting (José Roberto de Souza)
- Increase timeouts in i915_gem_contexts selftests to handle GuC being slower (Bruce Chang)

drm-intel-gt-next-2021-11-22:

Driver Changes:

- Fix media and OpenCL system hangs on Gen9 due a missing workaround (Cooper)
- Fix build on non-x86 due missing wbinvd_on_all_cpus (Matthew Auld)
- Fix recursive lock in GuC submission (Matthew Brost)
- Revert 'guc_id' from i915_request tracepoint (Joonas)
- Improve accuracy of engine busyness query with GuC submission (Umesh)
- Always flush the scratch page so Bypass-LLC MOCS works correctly (Matthew Auld)
- Stop caching the scratch page (Matthew Auld)
- Make sure to flush even if async flush unexpectedly fails (Matthew Auld)
- Skip flushing when obtaining dmabuf pages on discrete (Matthew Auld)
- Implement waitboosting with GuC submission (Vinay)
- Failsafe migration blits (Thomas)
- Fix per-engine resets with GuC submission (Matthew Brost, Thomas)
- Fix error capture in GuC mode (John)
- Fix gem_madvise for ttm+shmem objects (Thomas)
- Fix illegal addition to shrinker list with the TTM backend (Thomas)
- Skip error capture when wedged on init (Tvrtko)
- fix NULL vs IS_ERR() checking when creating GuC parallel contexts (Dan)
- Drain the ttm delayed workqueue too (Maarten)
- Add initial Xe_HP SDV workarounds (Stuart)
- Add initial DG2 gt/ctx/engine workarounds and programm HW settings (Matt)

- Faster shrinking of cached system memory objects from the TTM backend plus backend prep work (Matthew Auld)
- Introduce refcounted sg-tables (Thomas)
- Stop using obj->cache_dirty on discrete altogether (Matthew Auld)
- Track graphics and media steppings separately in code (José)
- Rework some irq functions to take intel_gt as argument (Paulo)
- Split general MMIO setup from per-GT uncore init (Daniele)
- Prep work work for TTM backend eviction and dma_resv locking (Maarten, Matthew Auld)

- Fix some selftests to work with GuC (Matthew Brost)
- Fix inconsistent IS_ERR and PTR_ERR (Kai)
- Use ERR_CAST instead of ERR_PTR(PTR_ERR()) (Wan)
- Remove some dead struct fwd decl from i915_drv.h (Daniel)
- Fixup dma_fence_wait usage (Matthew)
- Remove gen6_ppgtt_unpin_all (Maarten)
- Rework context handling in hugepages selftests (Maarten)

The following changes since commit c18c8891111bb5e014e144716044991112f16833:

  Merge tag 'drm-misc-next-2021-11-18' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2021-11-23 09:38:55 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-12-09

for you to fetch changes up to 20cddfcc82e642e4682c48af91f0702fbbd623a0:

  drm/i915/gt: Use hw_engine_masks as reset_domains (2021-12-08 18:27:05 -0500)

----------------------------------------------------------------
Core Changes:

- Fix PENDING_ERROR leak in dma_fence_array_signaled() (Thomas Hellström)

Driver Changes:

- Fix runtime PM handling during PXP suspend (Tejas Upadhyay)
- Improve eviction performance on discrete by implementing async TTM moves (Thomas Hellström, Maarten Lankhorst)
- Improve robustness of error capture under memory pressure (Thomas Hellström)
- Fix GuC PMU versus GPU reset handling (Umesh Nerlige Ramappa)
- Use per device iommu check (Tvrtko Ursulin)
- Make error capture work with async migration (Thomas Hellström)
- Revert incorrect implementation of Wa_1508744258 causing hangs (José Roberto de Souza)
- Disable coarse power gating on some DG2 steppings workaround (Matt Roper)
- Add IC cache invalidation workaround on DG2 (Ramalingam C)
- Move two Icelake workarounds to the right place (Raviteja Goud Talla)
- Fix error pointer dereference in i915_gem_do_execbuffer() (Dan Carpenter)
- Fixup a couple of generic and DG2 specific issues in migration code (Matthew Auld)

- Fix kernel-doc warnings in i915_drm_object.c (Randy Dunlap)
- Drop stealing of bits from i915_sw_fence function pointer (Matthew Brost)
- Introduce new macros for i915 PTE (Michael Cheng)
- Prep work for engine reset by reset domain lookup (Tejas Upadhyay)

- Fixup drm-intel-gt-next build failure (Matthew Auld)
- Fix live_engine_busy_stats selftests in GuC mode (Umesh Nerlige Ramappa)
- Remove dma_resv_prune (Maarten Lankhorst)
- Preserve huge pages enablement after driver reload (Matthew Auld)
- Fix a NULL pointer dereference in igt_request_rewind() (selftests) (Zhou Qingyang)
- Add workaround numbers to GEN7_COMMON_SLICE_CHICKEN1 whitelisting (José Roberto de Souza)
- Increase timeouts in i915_gem_contexts selftests to handle GuC being slower (Bruce Chang)

----------------------------------------------------------------
Bruce Chang (1):
      drm/i915/selftests: Follow up on increase timeout in i915_gem_contexts selftests

Cooper Chiou (1):
      drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

Dan Carpenter (3):
      drm/i915/guc: fix NULL vs IS_ERR() checking
      drm/i915/ttm: Fix error code in i915_ttm_eviction_valuable()
      drm/i915: Fix error pointer dereference in i915_gem_do_execbuffer()

Daniel Vetter (1):
      drm/i915: Remove some dead struct fwd decl from i915_drv.h

Daniele Ceraolo Spurio (1):
      drm/i915: split general MMIO setup from per-GT uncore init

John Harrison (1):
      drm/i915/guc: Refcount context during error capture

Joonas Lahtinen (3):
      Merge drm/drm-next into drm-intel-gt-next
      MAINTAINERS: Add Tvrtko as drm/i915 co-maintainer
      drm/i915: Revert 'guc_id' from i915_request tracepoint

José Roberto de Souza (5):
      drm/i915: Add struct to hold IP version
      drm/i915: Track media IP stepping separated from GT
      drm/i915: Rename GT_STEP to GRAPHICS_STEP
      Revert "drm/i915: Implement Wa_1508744258"
      drm/i915: Add workaround numbers to GEN7_COMMON_SLICE_CHICKEN1 whitelisting

Kai Song (1):
      drm/i915/selftests: Fix inconsistent IS_ERR and PTR_ERR

Maarten Lankhorst (9):
      drm/i915: Remove gen6_ppgtt_unpin_all
      drm/i915/selftests: Rework context handling in hugepages selftests
      drm/i915: Create a dummy object for gen6 ppgtt
      drm/i915: Create a full object for mock_ring, v2.
      drm/i915: vma is always backed by an object.
      drm/i915: Remove resv from i915_vma
      drm/i915: Drain the ttm delayed workqueue too
      drm/i915: Add support for moving fence waiting
      drm/i915: Remove dma_resv_prune

Matt Roper (4):
      drm/i915/dg2: Add initial gt/ctx/engine workarounds
      drm/i915/dg2: Program recommended HW settings
      drm/i915: Don't read query SSEU for non-existent slice 0 on old platforms
      drm/i915/dg2: Add Wa_16011777198

Matthew Auld (23):
      drm/i915/dmabuf: fix broken build
      drm/i915/ttm: add tt shmem backend
      drm/i915/gtt: drop unneeded make_unshrinkable
      drm/i915: drop unneeded make_unshrinkable in free_object
      drm/i915: add some kernel-doc for shrink_pin and friends
      drm/i915/ttm: move shrinker management into adjust_lru
      drm/i915/ttm: use cached system pages when evicting lmem
      drm/i915/ttm: enable shmem tt backend
      drm/i915/gtt: flush the scratch page
      drm/i915/gtt: stop caching the scratch page
      drm/i915/clflush: fixup handling of cache_dirty
      drm/i915/clflush: disallow on discrete
      drm/i915: move cpu_write_needs_clflush
      drm/i915: stop setting cache_dirty on discrete
      drm/i915/dmabuf: drop the flush on discrete
      drm/i915: fixup dma_fence_wait usage
      drm/i915: move the pre_pin earlier
      drm/i915/ttm: fixup build failure
      drm/i915/gemfs: don't mark huge_opt as static
      drm/i915/migrate: don't check the scratch page
      drm/i915/migrate: fix offset calculation
      drm/i915/migrate: fix length calculation
      drm/i915/selftests: handle object rounding

Matthew Brost (5):
      drm/i915/selftests: Increase timeout in requests perf selftest
      drm/i915/selftests: Update live.evict to wait on requests / idle GPU after each loop
      drm/i915/guc: Fix recursive lock in GuC submission
      drm/i915/resets: Don't set / test for per-engine reset bits with GuC submission
      drm/i915: Drop stealing of bits from i915_sw_fence function pointer

Michael Cheng (1):
      drm/i915: Introduce new macros for i915 PTE

Paulo Zanoni (1):
      drm/i915: rework some irq functions to take intel_gt as argument

Ramalingam C (1):
      drm/i915/dg2: Add Wa_16013000631

Randy Dunlap (1):
      drm/i915/gem: placate scripts/kernel-doc

Raviteja Goud Talla (1):
      drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()

Stuart Summers (1):
      drm/i915/xehpsdv: Add initial workarounds

Tejas Upadhyay (2):
      drm/i915/gt: Hold RPM wakelock during PXP suspend
      drm/i915/gt: Use hw_engine_masks as reset_domains

Thomas Hellström (16):
      drm/i915/gem: Break out some shmem backend utils
      drm/i915: Introduce refcounted sg-tables
      drm/i915/ttm: Reorganize the ttm move code
      drm/i915/ttm: Failsafe migration blits
      drm/i915/gem: Fix gem_madvise for ttm+shmem objects
      drm/i915/selftests: Use clear_and_wake_up_bit() for the per-engine reset bitlocks
      drm/i915/ttm: Fix illegal addition to shrinker list
      drm/i915/ttm: Move the i915_gem_obj_copy_ttm() function
      drm/i915/ttm: Drop region reference counting
      drm/i915/ttm: Correctly handle waiting for gpu when shrinking
      drm/i915/ttm: Implement asynchronous TTM moves
      drm/i915/ttm: Update i915_gem_obj_copy_ttm() to be asynchronous
      drm/i915: Avoid allocating a page array for the gpu coredump
      drm/i915: Use __GFP_KSWAPD_RECLAIM in the capture code
      dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
      drm/i915: Update error capture code to avoid using the current vma state

Tvrtko Ursulin (5):
      drm/i915: Skip error capture when wedged on init
      Merge drm/drm-next into drm-intel-gt-next
      Revert "drm/i915/dmabuf: fix broken build"
      Merge drm/drm-next into drm-intel-gt-next
      drm/i915: Use per device iommu check

Umesh Nerlige Ramappa (5):
      drm/i915/pmu: Add a name to the execlists stats
      drm/i915/pmu: Connect engine busyness stats from GuC to pmu
      drm/i915/pmu: Avoid with_intel_runtime_pm within spinlock
      drm/i915/pmu: Increase the live_engine_busy_stats sample period
      drm/i915/pmu: Fix synchronization of PMU callback with reset

Vinay Belgaumkar (4):
      drm/i915/guc/slpc: Define and initialize boost frequency
      drm/i915/guc/slpc: Add waitboost functionality for SLPC
      drm/i915/guc/slpc: Update boost sysfs hooks for SLPC
      drm/i915/guc/slpc: Check GuC status before freq boost

Wan Jiabing (1):
      drm/i915: Use ERR_CAST instead of ERR_PTR(PTR_ERR())

Zhou Qingyang (1):
      drm/i915/gem: Fix a NULL pointer dereference in igt_request_rewind()

 MAINTAINERS                                        |   1 +
 drivers/dma-buf/dma-fence-array.c                  |   6 +-
 drivers/gpu/drm/i915/Makefile                      |   3 +-
 drivers/gpu/drm/i915/display/intel_bw.c            |   2 +-
 drivers/gpu/drm/i915/display/intel_display.c       |   4 +-
 drivers/gpu/drm/i915/display/intel_fbc.c           |   2 +-
 drivers/gpu/drm/i915/dma_resv_utils.c              |  17 -
 drivers/gpu/drm/i915/dma_resv_utils.h              |  13 -
 drivers/gpu/drm/i915/gem/i915_gem_clflush.c        |  18 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |  15 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |  22 +
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     | 142 +++-
 drivers/gpu/drm/i915/gem/i915_gem_internal.c       |  44 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  75 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  40 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  46 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  18 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          | 195 +++--
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  97 ++-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |   8 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            | 765 +++++++++---------
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |  41 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c       | 874 +++++++++++++++++++++
 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h       |  41 +
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c         |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_wait.c           |  12 +-
 drivers/gpu/drm/i915/gem/i915_gemfs.c              |   5 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    | 130 +--
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |   2 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |   4 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  |  24 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               | 135 ++--
 drivers/gpu/drm/i915/gt/gen6_ppgtt.h               |   2 -
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |   2 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  11 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |  16 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  68 +-
 drivers/gpu/drm/i915/gt/intel_engine_stats.h       |  33 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  84 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  37 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   6 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   9 +-
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   3 +
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   3 +
 drivers/gpu/drm/i915/gt/intel_lrc.c                |   5 +
 drivers/gpu/drm/i915/gt/intel_migrate.c            |   8 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               |   2 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |  15 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |  12 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |  58 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   2 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  72 ++
 drivers/gpu/drm/i915/gt/intel_rps.h                |   3 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 502 ++++++++++--
 drivers/gpu/drm/i915/gt/mock_engine.c              |  38 +-
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |  35 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  20 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |   1 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  30 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  21 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h         |   5 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  13 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        | 155 +++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h        |   3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h  |  13 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 290 +++++++
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   2 +
 drivers/gpu/drm/i915/gvt/gtt.c                     |  12 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   1 +
 drivers/gpu/drm/i915/i915_drv.c                    |  18 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  83 +-
 drivers/gpu/drm/i915/i915_gem.c                    |   5 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              | 233 ++++--
 drivers/gpu/drm/i915/i915_gpu_error.h              |   4 +-
 drivers/gpu/drm/i915/i915_irq.c                    |  26 +-
 drivers/gpu/drm/i915/i915_pci.c                    |  18 +-
 drivers/gpu/drm/i915/i915_reg.h                    | 156 +++-
 drivers/gpu/drm/i915/i915_request.c                |  69 +-
 drivers/gpu/drm/i915/i915_request.h                |  20 +-
 drivers/gpu/drm/i915/i915_scatterlist.c            |  62 +-
 drivers/gpu/drm/i915/i915_scatterlist.h            |  76 +-
 drivers/gpu/drm/i915/i915_sw_fence.c               |  28 +-
 drivers/gpu/drm/i915/i915_sw_fence.h               |  23 +-
 drivers/gpu/drm/i915/i915_sw_fence_work.c          |   2 +-
 drivers/gpu/drm/i915/i915_sysfs.c                  |  19 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  98 ++-
 drivers/gpu/drm/i915/i915_vma.h                    |   9 +-
 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              |   1 -
 drivers/gpu/drm/i915/intel_device_info.c           |  33 +-
 drivers/gpu/drm/i915/intel_device_info.h           |  12 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |  26 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |   9 +-
 drivers/gpu/drm/i915/intel_pm.c                    |  39 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |  50 +-
 drivers/gpu/drm/i915/intel_region_ttm.h            |   7 +-
 drivers/gpu/drm/i915/intel_step.c                  |  77 +-
 drivers/gpu/drm/i915/intel_step.h                  |   3 +-
 drivers/gpu/drm/i915/intel_uncore.c                |  17 +-
 drivers/gpu/drm/i915/intel_uncore.h                |   2 +
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c            |  37 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h            |  19 +-
 drivers/gpu/drm/i915/selftests/i915_gem_evict.c    |  19 +
 drivers/gpu/drm/i915/selftests/i915_request.c      |  14 +-
 drivers/gpu/drm/i915/selftests/i915_sw_fence.c     |   2 +-
 drivers/gpu/drm/i915/selftests/igt_reset.c         |   2 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |   8 +-
 drivers/gpu/drm/i915/selftests/lib_sw_fence.c      |   8 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |   4 +-
 drivers/gpu/drm/i915/selftests/mock_region.c       |  19 +-
 114 files changed, 4609 insertions(+), 1397 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/dma_resv_utils.c
 delete mode 100644 drivers/gpu/drm/i915/dma_resv_utils.h
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h
 create mode 100644 drivers/gpu/drm/i915/i915_vma_snapshot.c
 create mode 100644 drivers/gpu/drm/i915/i915_vma_snapshot.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-10-21 13:07 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-10-21 13:07 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Sean Paul,
	Maarten Lankhorst, Maxime Ripard, dri-devel, intel-gfx,
	dim-tools

Hi Dave & Daniel,

Here comes the final feature PR for 5.16.

As the biggest thing it adds multi-LRC (parallel) submission
implementation for GuC and a simplified parallel submission uAPI
to go with that (only works with GuC for now). It is has a similar
mission to the bonded submission uAPI, take a look at the kerneldocs
for full detail.

Then there are some improvements to making sure old pages are flushed from
caches before making them available to userspaces. Those extra flushes may
be visible in corner case scenarios if application is frequently importing
new dmabufs on non-LLC hardware. The better approach would anyway be to
recycle a pool of dmabufs than destroy and recreate.

In addition to that, it's only minor changes with mainly developer
impact and those can be seen in shortlog.

Regards, Joonas

PS. There has been request to backmerge drm-next after you merge this
    PR, to bring in dma-resv iterators. I'll do that.

PPS. Will send out the dim patches for the "for-linux-next-gt" branch
     updating to make sure we avoid the future conflicts.

***

drm-intel-gt-next-2021-10-21:

UAPI Changes:

- Expose multi-LRC submission interface

  Similar to the bonded submission interface but simplified.
  Comes with GuC only implementation for now. See kerneldoc
  for more details.

  Userspace changes: https://github.com/intel/media-driver/pull/1252

- Expose logical engine instance to user

  Needed by the multi-LRC submission interface for GuC

  Userspace changes: https://github.com/intel/media-driver/pull/1252

Driver Changes:

- Fix blank screen booting crashes when CONFIG_CC_OPTIMIZE_FOR_SIZE=y (Hugh)
- Add support for multi-LRC submission in the GuC backend (Matt B)
- Add extra cache flushing before making pages userspace visible (Matt A, Thomas)
- Mark internal GPU object pages dirty so they will be flushed properly (Matt A)

- Move remaining debugfs interfaces i915_wedged/i915_forcewake_user into gt (Andi)
- Replace the unconditional clflushes with drm_clflush_virt_range() (Ville)
- Remove IS_ACTIVE macro completely (Lucas)
- Improve kerneldocs for cache_dirty (Matt A)

- Add missing includes (Lucas)
- Selftest improvements (Matt R, Ran, Matt A)

The following changes since commit 1a839e016e4964b5c8384e5d82e5e5ac02a23f52:

  drm/i915: remove IS_ACTIVE (2021-10-07 11:04:05 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-10-21

for you to fetch changes up to ab5d964c001b9efffcbfa4d67a30186b67d79771:

  drm/i915/selftests: mark up hugepages object with start_cpu_write (2021-10-20 16:50:42 +0100)

----------------------------------------------------------------
UAPI Changes:

- Expose multi-LRC submission interface

  Similar to the bonded submission interface but simplified.
  Comes with GuC only implementation for now. See kerneldoc
  for more details.

  Userspace changes: https://github.com/intel/media-driver/pull/1252

- Expose logical engine instance to user

  Needed by the multi-LRC submission interface for GuC

  Userspace changes: https://github.com/intel/media-driver/pull/1252

Driver Changes:

- Fix blank screen booting crashes when CONFIG_CC_OPTIMIZE_FOR_SIZE=y (Hugh)
- Add support for multi-LRC submission in the GuC backend (Matt B)
- Add extra cache flushing before making pages userspace visible (Matt A, Thomas)
- Mark internal GPU object pages dirty so they will be flushed properly (Matt A)

- Move remaining debugfs interfaces i915_wedged/i915_forcewake_user into gt (Andi)
- Replace the unconditional clflushes with drm_clflush_virt_range() (Ville)
- Remove IS_ACTIVE macro completely (Lucas)
- Improve kerneldocs for cache_dirty (Matt A)

- Add missing includes (Lucas)
- Selftest improvements (Matt R, Ran, Matt A)

----------------------------------------------------------------
Andi Shyti (1):
      drm/i915/gt: move remaining debugfs interfaces into gt

Hugh Dickins (1):
      drm/i915: fix blank screen booting crashes

Lucas De Marchi (2):
      drm/i915/gt: include tsc.h where used
      drm/i915/gt: add asm/cacheflush.h for use of clflush()

Matt Roper (1):
      drm/i915: Stop using I915_TILING_* in client blit selftest

Matthew Auld (9):
      drm/i915: mark dmabuf objects as ALLOC_USER
      drm/i915: mark userptr objects as ALLOC_USER
      drm/i915: extract bypass-llc check into helper
      drm/i915/dmabuf: add paranoid flush-on-acquire
      drm/i915/userptr: add paranoid flush-on-acquire
      drm/i915/shmem: ensure flush during swap-in on non-LLC
      drm/i915: expand on the kernel-doc for cache_dirty
      drm/i915: mark up internal objects with start_cpu_write
      drm/i915/selftests: mark up hugepages object with start_cpu_write

Matthew Brost (24):
      drm/i915/guc: Move GuC guc_id allocation under submission state sub-struct
      drm/i915/guc: Take GT PM ref when deregistering context
      drm/i915/guc: Take engine PM when a context is pinned with GuC submission
      drm/i915/guc: Don't call switch_to_kernel_context with GuC submission
      drm/i915: Add logical engine mapping
      drm/i915: Expose logical engine instance to user
      drm/i915/guc: Introduce context parent-child relationship
      drm/i915/guc: Add multi-lrc context registration
      drm/i915/guc: Ensure GuC schedule operations do not operate on child contexts
      drm/i915/guc: Assign contexts in parent-child relationship consecutive guc_ids
      drm/i915/guc: Implement parallel context pin / unpin functions
      drm/i915/guc: Implement multi-lrc submission
      drm/i915/guc: Insert submit fences between requests in parent-child relationship
      drm/i915/guc: Implement multi-lrc reset
      drm/i915/guc: Update debugfs for GuC multi-lrc
      drm/i915/guc: Connect UAPI to GuC multi-lrc interface
      drm/i915/doc: Update parallel submit doc to point to i915_drm.h
      drm/i915/guc: Add basic GuC multi-lrc selftest
      drm/i915/guc: Implement no mid batch preemption for multi-lrc
      drm/i915: Multi-BB execbuf
      drm/i915/guc: Handle errors in multi-lrc requests
      drm/i915: Make request conflict tracking understand parallel submits
      drm/i915: Update I915_GEM_BUSY IOCTL to understand composite fences
      drm/i915: Enable multi-bb execbuf

Ran Jianping (1):
      drm/i915/selftests: remove duplicate include in mock_region.c

Ville Syrjälä (3):
      drm/i915: Replace the unconditional clflush with drm_clflush_virt_range()
      drm/i915: Convert unconditional clflush to drm_clflush_virt_range()
      drm/i915: Catch yet another unconditioal clflush

 Documentation/gpu/rfc/i915_parallel_execbuf.h      |  122 --
 Documentation/gpu/rfc/i915_scheduler.rst           |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_busy.c           |   57 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  227 ++-
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |   16 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |    9 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  797 +++++++----
 drivers/gpu/drm/i915/gem/i915_gem_internal.c       |    2 +
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |   26 +
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |    1 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   27 +
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   29 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |    8 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |    7 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |   29 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   52 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   56 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   73 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   13 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   66 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   13 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.h          |   37 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |    7 +
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |    7 +-
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.c         |   55 +
 drivers/gpu/drm/i915/gt/intel_gt_debugfs.h         |    4 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.h              |   14 +
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   41 +
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h      |    4 +
 drivers/gpu/drm/i915/gt/intel_llc.c                |    1 +
 drivers/gpu/drm/i915/gt/intel_lrc.c                |    5 +
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |    2 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |    4 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |   12 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |    1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   29 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   54 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |    2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |   24 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |   34 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 1446 +++++++++++++++++---
 .../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c    |  179 +++
 drivers/gpu/drm/i915/i915_debugfs.c                |   43 +-
 drivers/gpu/drm/i915/i915_query.c                  |    2 +
 drivers/gpu/drm/i915/i915_request.c                |  143 +-
 drivers/gpu/drm/i915/i915_request.h                |   23 +
 drivers/gpu/drm/i915/i915_vma.c                    |   21 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   13 +-
 drivers/gpu/drm/i915/intel_wakeref.h               |   12 +
 .../gpu/drm/i915/selftests/i915_live_selftests.h   |    1 +
 drivers/gpu/drm/i915/selftests/mock_region.c       |    2 -
 include/uapi/drm/i915_drm.h                        |  139 +-
 52 files changed, 3231 insertions(+), 764 deletions(-)
 delete mode 100644 Documentation/gpu/rfc/i915_parallel_execbuf.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2021-08-06 10:06 Joonas Lahtinen
@ 2021-08-06 10:10 ` Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-08-06 10:10 UTC (permalink / raw)
  To: Daniel Vetter, Dave Airlie
  Cc: Jani Nikula, Rodrigo Vivi, Sean Paul, Maarten Lankhorst,
	Maxime Ripard, dri-devel, intel-gfx, dim-tools

Quoting Joonas Lahtinen (2021-08-06 13:06:17)
> Hi Dave & Daniel,
> 
> Sorry for the big PR in advance. Had the summer vacations and did not
> notice until tool late how many patches were in already before leaving.
> 
> As requested, there is a lot of refactoring to increase the use of TTM
> allocator and prep for DRM scheduler. Note that at times the patches trade
> simplicity for performance and revert optimizations not seen as critical.
> So some performance regressions are expected.
> 
> As an example is dropping of faster GPU relocation path for older platforms,
> which should be mitigated by updating to the latest UMD versions to regain
> the perf.
> 
> This PR drops various bits of uAPI where userspace has dropped the ball after reviews
> have been completed on both sides (Thanks Jason for doing the due-diligence!). [1]
> Due to the complexity of tracing back who used what, I think we could do better in the
> future to avoid such situations to begin with. See below for my suggestion [2].
> 
> In addition to the refactoring and uAPI cleanup there is preliminay code for
> ADL-P/XeHP and DG2 platforms. Fixes for ADL-S and removal of CNL code.
> A couple of fixes that have been Cc: stable already. Removing unnecessary
> workarounds per stepping and adding missing for Gen12 iGFX.
> 
> I915_MMAP_OFFSET_FIXED is also added to to align with the static/fixed caching
> mode per BO instead of per-mapping mode (for dGFX only). There is GuC firmware
> interface update and backend code major rework that unblock enabling GuC on Gen11
> (not on by default). Then there is the addition of the GuCRC power management
> feature which can be enabled for Gen12+ when submission is enabled.

There is also addition of I915_USERPTR_PROBE with userspace changes in:

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12044

Regards, Joonas

> 
> Then there is finally the drm-next backmerge and 3 topic branch merges.
> 
> I think that is mostly all. I tried to summarize much in the tag description so
> it should hopefully not be horribly long...
> 
> Regards, Joonas
> 
> [1] Given that Jason is only human and there is no way to automate this analysis, we
> may have to bring something back as fixes if we find breakage (like with the MMAP IOCTL).
> 
> [2] As we first require to merge the kernel code, should we introduce some further rules
> that the userspace has to land their code before the final kernel version release? If
> that is not followed through, we would neuter the new uAPI with as small patch as possible
> in the final release candidate and then remove it in next release. Thoughts?
> 
> ***
> 
> drm-intel-gt-next-2021-08-06-1:
> 
> UAPI Changes:
> 
> - Add I915_MMAP_OFFSET_FIXED
> 
>   On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid
>   type. On devices without local memory, this caching mode is invalid.
> 
>   As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will
>   be used, depending on the object placement on creation. WB will be used
>   when the object can only exist in system memory, WC otherwise.
> 
>   Userspace: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11888
> 
> - Reinstate the mmap ioctl for (already released) integrated Gen12 platforms
> 
>   Rationale: Otherwise media driver breaks eg. for ADL-P. Long term goal is
>   still to sunset the IOCTL even for integrated and require using mmap_offset.
> 
> - Reject caching/set_domain IOCTLs on discrete
> 
>   Expected to become immutable property of the BO
> 
> - Disallow changing context parameters after first use on Gen12 and earlier
> - Require setting context parameters at creation on platforms after Gen12
> 
>   Rationale (for both): Allow less dynamic changes to the context to simplify
>   the implementation and avoid user shooting theirselves in the foot.
> 
> - Drop I915_CONTEXT_PARAM_RINGSIZE
> 
>   Userspace PR for compute-driver has not been merged
> 
> - Drop I915_CONTEXT_PARAM_NO_ZEROMAP
> 
>   Userspace PR for libdrm / Beignet was never landed
> 
> - Drop CONTEXT_CLONE API
> 
>   Userspace PR for Mesa was never landed
> 
> - Drop getparam support for I915_CONTEXT_PARAM_ENGINES
> 
>   Only existed for symmetry wrt. setparam, never used.
> 
> - Disallow bonding of virtual engines
> 
>   Drop the prep work, no hardware has been released needing it.
> 
> - (Implicit) Disable gpu relocations
> 
>   Media userspace was the last userspace to still use them. They
>   have converted so performance can be regained with an update.
> 
> Core Changes:
> 
> - Merge topic branch 'topic/i915-ttm-2021-06-11' (from Maarten)
> - Merge topic branch 'topic/revid_steppings' (from Matt R)
> - Merge topic branch 'topic/xehp-dg2-definitions-2021-07-21' (from Matt R)
> - Backmerges drm-next (Rodrigo)
> 
> Driver Changes:
> 
> - Initial workarounds for ADL-P (Clint)
> - Preliminary code for XeHP/DG2 (Stuart, Umesh, Matt R, Prathap, Ram,
>   Venkata, Akeem, Tvrtko, John, Lucas)
> - Fix ADL-S DMA mask size to 39 bits (Tejas)
> - Remove code for CNL (Lucas)
> - Add ADL-P GuC/HuC firmwares (John)
> - Update HuC to 7.9.3 for TGL/ADL-S/RKL (John)
> - Fix -EDEADLK handling regression (Ville)
> - Implement Wa_1508744258 for DG1 and Gen12 iGFX (Jose)
> - Extend Wa_1406941453 to ADL-S (Jose)
> - Drop unnecessary workarounds per stepping for SKL/BXT/ICL (Matt R)
> - Use fuse info to enable SFC on Gen12 (Venkata)
> - Unconditionally flush the pages on acquire on EHL/JSL (Matt A)
> - Probe existence of backing struct pages upon userptr creation (Chris, Matt A)
> 
> - Add an intermediate GEM proto-context to delay real context creation (Jason)
> - Implement SINGLE_TIMELINE with a syncobj (Jason)
> - Set the watchdog timeout directly in intel_context_set_gem (Jason)
> - Disallow userspace from creating contexts with too many engines (Jason)
> - Revert "drm/i915/gem: Asynchronous cmdparser" (Jason)
> - Revert "drm/i915: Propagate errors on awaiting already signaled fences" (Jason)
> - Revert "drm/i915: Skip over MI_NOOP when parsing" (Jason)
> - Revert "drm/i915: Shrink the GEM kmem_caches upon idling" (Daniel)
> - Always let TTM handle object migration (Jason)
> - Correct the locking and pin pattern for dma-buf (Thomas H, Michael R, Jason)
> - Migrate to system at dma-buf attach time (Thomas, Michael R)
> 
> - MAJOR refactoring of the GuC backend code to allow for enabling on Gen11+
>   (Matt B, John, Michal Wa., Fernando, Daniele, Vinay)
> - Update GuC firmware interface to v62.0.0 (John, Michal Wa., Matt B)
> - Add GuCRC feature to hand over the control of HW RC6 to the GuC on
>   Gen12+ when GuC submission is enabled (Vinay, Sujaritha, Daniele,
>   John, Tvrtko)
> - Use the correct IRQ during resume and eliminate DRM IRQ midlayer (Thomas Z)
> - Add pipelined page migration and clearing (Chris, Thomas H)
> - Use TTM for system memory on discrete (Thomas H)
> - Implement object migration for display vs. dma-buf (Thomas H)
> - Perform execbuffer object locking as a separate step (Thomas H)
> - Add support for explicit L3BANK steering (Matt, Daniele)
> - Remove duplicated call to ops->pread (Daniel)
> - Fix pagefault disabling in the first execbuf slowpath (Daniel)
> - Simplify userptr locking (Thomas H)
> - Improvements to the GuC CTB code (Matt B, John)
> - Make GT workaround upper bounds exclusive (Matt R)
> - Check for nomodeset in i915_init() first (Daniel)
> - Delete now unused gpu reloc code (Daniel)
> 
> - Document RFC plans for GuC submission, DRM scheduler and new parallel
>   submit uAPI (Matt B)
> - Reintroduce buddy allocator this time with TTM (Matt A)
> - Support forcing page size with LMEM (Matt A)
> - Add i915_sched_engine to abstract a submission queue between backends (Matt B)
> - Use accelerated move in TTM (Ram)
> - Fix memory leaks from TTM backend (Thomas H)
> - Introduce WW transaction helper (Thomas H)
> - Improve debug Kconfig texts a bit (Daniel)
> - Unify user object creation code (Jason)
> - Use a table for i915_init/exit (Jason)
> - Move slabs to module init/exit (Daniel)
> - Remove now unused i915_globals (Daniel)
> - Extract i915_module.c (Daniel)
> 
> - Consistently use adl-p/adl-s in WA comments (Jose)
> - Finish INTEL_GEN and friends conversion (Lucas)
> - Correct variable/function namings (Lucas)
> - Code checker fixes (Wan, Matt A)
> - Tracepoint improvements (Matt B)
> - Kerneldoc improvements (Tvrtko, Jason, Matt A, Maarten)
> - Selftest improvements (Chris, Matt A, Tejas, Thomas H, John, Matt B,
>   Rahul, Vinay)
> The following changes since commit e73f0f0ee7541171d89f2e2491130c7771ba58d3:
> 
>   Linux 5.14-rc1 (2021-07-11 15:07:40 -0700)
> 
> are available in the Git repository at:
> 
>   git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-08-06-1
> 
> for you to fetch changes up to 927dfdd09d8c03ba100ed0c8c3915f8e1d1f5556:
> 
>   drm/i915/dg2: Add SQIDI steering (2021-08-05 08:07:25 -0700)
> 
> ----------------------------------------------------------------
> UAPI Changes:
> 
> - Add I915_MMAP_OFFSET_FIXED
> 
>   On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid
>   type. On devices without local memory, this caching mode is invalid.
> 
>   As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will
>   be used, depending on the object placement on creation. WB will be used
>   when the object can only exist in system memory, WC otherwise.
> 
>   Userspace: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11888
> 
> - Reinstate the mmap ioctl for (already released) integrated Gen12 platforms
> 
>   Rationale: Otherwise media driver breaks eg. for ADL-P. Long term goal is
>   still to sunset the IOCTL even for integrated and require using mmap_offset.
> 
> - Reject caching/set_domain IOCTLs on discrete
> 
>   Expected to become immutable property of the BO
> 
> - Disallow changing context parameters after first use on Gen12 and earlier
> - Require setting context parameters at creation on platforms after Gen12
> 
>   Rationale (for both): Allow less dynamic changes to the context to simplify
>   the implementation and avoid user shooting theirselves in the foot.
> 
> - Drop I915_CONTEXT_PARAM_RINGSIZE
> 
>   Userspace PR for compute-driver has not been merged
> 
> - Drop I915_CONTEXT_PARAM_NO_ZEROMAP
> 
>   Userspace PR for libdrm / Beignet was never landed
> 
> - Drop CONTEXT_CLONE API
> 
>   Userspace PR for Mesa was never landed
> 
> - Drop getparam support for I915_CONTEXT_PARAM_ENGINES
> 
>   Only existed for symmetry wrt. setparam, never used.
> 
> - Disallow bonding of virtual engines
> 
>   Drop the prep work, no hardware has been released needing it.
> 
> - (Implicit) Disable gpu relocations
> 
>   Media userspace was the last userspace to still use them. They
>   have converted so performance can be regained with an update.
> 
> Core Changes:
> 
> - Merge topic branch 'topic/i915-ttm-2021-06-11' (from Maarten)
> - Merge topic branch 'topic/revid_steppings' (from Matt R)
> - Merge topic branch 'topic/xehp-dg2-definitions-2021-07-21' (from Matt R)
> - Backmerges drm-next (Rodrigo)
> 
> Driver Changes:
> 
> - Initial workarounds for ADL-P (Clint)
> - Preliminary code for XeHP/DG2 (Stuart, Umesh, Matt R, Prathap, Ram,
>   Venkata, Akeem, Tvrtko, John, Lucas)
> - Fix ADL-S DMA mask size to 39 bits (Tejas)
> - Remove code for CNL (Lucas)
> - Add ADL-P GuC/HuC firmwares (John)
> - Update HuC to 7.9.3 for TGL/ADL-S/RKL (John)
> - Fix -EDEADLK handling regression (Ville)
> - Implement Wa_1508744258 for DG1 and Gen12 iGFX (Jose)
> - Extend Wa_1406941453 to ADL-S (Jose)
> - Drop unnecessary workarounds per stepping for SKL/BXT/ICL (Matt R)
> - Use fuse info to enable SFC on Gen12 (Venkata)
> - Unconditionally flush the pages on acquire on EHL/JSL (Matt A)
> - Probe existence of backing struct pages upon userptr creation (Chris, Matt A)
> 
> - Add an intermediate GEM proto-context to delay real context creation (Jason)
> - Implement SINGLE_TIMELINE with a syncobj (Jason)
> - Set the watchdog timeout directly in intel_context_set_gem (Jason)
> - Disallow userspace from creating contexts with too many engines (Jason)
> - Revert "drm/i915/gem: Asynchronous cmdparser" (Jason)
> - Revert "drm/i915: Propagate errors on awaiting already signaled fences" (Jason)
> - Revert "drm/i915: Skip over MI_NOOP when parsing" (Jason)
> - Revert "drm/i915: Shrink the GEM kmem_caches upon idling" (Daniel)
> - Always let TTM handle object migration (Jason)
> - Correct the locking and pin pattern for dma-buf (Thomas H, Michael R, Jason)
> - Migrate to system at dma-buf attach time (Thomas, Michael R)
> 
> - MAJOR refactoring of the GuC backend code to allow for enabling on Gen11+
>   (Matt B, John, Michal Wa., Fernando, Daniele, Vinay)
> - Update GuC firmware interface to v62.0.0 (John, Michal Wa., Matt B)
> - Add GuCRC feature to hand over the control of HW RC6 to the GuC on
>   Gen12+ when GuC submission is enabled (Vinay, Sujaritha, Daniele,
>   John, Tvrtko)
> - Use the correct IRQ during resume and eliminate DRM IRQ midlayer (Thomas Z)
> - Add pipelined page migration and clearing (Chris, Thomas H)
> - Use TTM for system memory on discrete (Thomas H)
> - Implement object migration for display vs. dma-buf (Thomas H)
> - Perform execbuffer object locking as a separate step (Thomas H)
> - Add support for explicit L3BANK steering (Matt, Daniele)
> - Remove duplicated call to ops->pread (Daniel)
> - Fix pagefault disabling in the first execbuf slowpath (Daniel)
> - Simplify userptr locking (Thomas H)
> - Improvements to the GuC CTB code (Matt B, John)
> - Make GT workaround upper bounds exclusive (Matt R)
> - Check for nomodeset in i915_init() first (Daniel)
> - Delete now unused gpu reloc code (Daniel)
> 
> - Document RFC plans for GuC submission, DRM scheduler and new parallel
>   submit uAPI (Matt B)
> - Reintroduce buddy allocator this time with TTM (Matt A)
> - Support forcing page size with LMEM (Matt A)
> - Add i915_sched_engine to abstract a submission queue between backends (Matt B)
> - Use accelerated move in TTM (Ram)
> - Fix memory leaks from TTM backend (Thomas H)
> - Introduce WW transaction helper (Thomas H)
> - Improve debug Kconfig texts a bit (Daniel)
> - Unify user object creation code (Jason)
> - Use a table for i915_init/exit (Jason)
> - Move slabs to module init/exit (Daniel)
> - Remove now unused i915_globals (Daniel)
> - Extract i915_module.c (Daniel)
> 
> - Consistently use adl-p/adl-s in WA comments (Jose)
> - Finish INTEL_GEN and friends conversion (Lucas)
> - Correct variable/function namings (Lucas)
> - Code checker fixes (Wan, Matt A)
> - Tracepoint improvements (Matt B)
> - Kerneldoc improvements (Tvrtko, Jason, Matt A, Maarten)
> - Selftest improvements (Chris, Matt A, Tejas, Thomas H, John, Matt B,
>   Rahul, Vinay)
> 
> ----------------------------------------------------------------
> Anusha Srivatsa (1):
>       drm/i915/step: s/<platform>_revid_tbl/<platform>_revids
> 
> Chris Wilson (8):
>       drm/i915/selftests: Reorder tasklet_disable vs local_bh_disable
>       drm/i915/gt: Add an insert_entry for gen8_ppgtt
>       drm/i915/gt: Add a routine to iterate over the pagetables of a GTT
>       drm/i915/gt: Export the pinned context constructor and destructor
>       drm/i915/gt: Pipelined page migration
>       drm/i915/gt: Pipelined clear
>       drm/i915/gt: Setup a default migration context on the GT
>       drm/i915/userptr: Probe existence of backing struct pages upon creation
> 
> Clint Taylor (1):
>       drm/i915/adl_p: Add initial ADL_P Workarounds
> 
> Daniel Vetter (17):
>       drm/i915/gem: Remove duplicated call to ops->pread
>       drm/i915/eb: Fix pagefault disabling in the first slowpath
>       drm/i915: Improve debug Kconfig texts a bit
>       drm/i915: Ditch i915 globals shrink infrastructure
>       drm/i915: Check for nomodeset in i915_init() first
>       drm/i915: move i915_active slab to direct module init/exit
>       drm/i915: move i915_buddy slab to direct module init/exit
>       drm/i915: move intel_context slab to direct module init/exit
>       drm/i915: move gem_context slab to direct module init/exit
>       drm/i915: move gem_objects slab to direct module init/exit
>       drm/i915: move request slabs to direct module init/exit
>       drm/i915: move scheduler slabs to direct module init/exit
>       drm/i915: move vma slab to direct module init/exit
>       drm/i915: Remove i915_globals
>       drm/i915: Extract i915_module.c
>       drm/i915: Disable gpu relocations
>       drm/i915: delete gpu reloc code
> 
> Daniele Ceraolo Spurio (3):
>       drm/i915: extract steered reg access to common function
>       drm/i915/guc: Unblock GuC submission on Gen11+
>       drm/i915/xehp: handle new steering options
> 
> Jason Ekstrand (46):
>       drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE
>       drm/i915: Stop storing the ring size in the ring pointer (v3)
>       drm/i915: Drop I915_CONTEXT_PARAM_NO_ZEROMAP
>       drm/i915/gem: Set the watchdog timeout directly in intel_context_set_gem (v2)
>       drm/i915/gem: Return void from context_apply_all
>       drm/i915: Drop the CONTEXT_CLONE API (v2)
>       drm/i915: Implement SINGLE_TIMELINE with a syncobj (v4)
>       drm/i915: Drop getparam support for I915_CONTEXT_PARAM_ENGINES
>       drm/i915/gem: Disallow bonding of virtual engines (v3)
>       drm/i915/gem: Remove engine auto-magic with FENCE_SUBMIT (v2)
>       drm/i915/request: Remove the hook from await_execution
>       drm/i915/gem: Disallow creating contexts with too many engines
>       drm/i915: Stop manually RCU banging in reset_stats_ioctl (v2)
>       drm/i915/gem: Add a separate validate_priority helper
>       drm/i915: Add gem/i915_gem_context.h to the docs
>       drm/i915/gem: Add an intermediate proto_context struct (v5)
>       drm/i915/gem: Rework error handling in default_engines
>       drm/i915/gem: Optionally set SSEU in intel_context_set_gem
>       drm/i915: Add an i915_gem_vm_lookup helper
>       drm/i915/gem: Make an alignment check more sensible
>       drm/i915/gem: Use the proto-context to handle create parameters (v5)
>       drm/i915/gem: Return an error ptr from context_lookup
>       drm/i915/gt: Drop i915_address_space::file (v2)
>       drm/i915/gem: Delay context creation (v3)
>       drm/i915/gem: Don't allow changing the VM on running contexts (v4)
>       drm/i915/gem: Don't allow changing the engine set on running contexts (v3)
>       drm/i915/selftests: Take a VM in kernel_context()
>       i915/gem/selftests: Assign the VM at context creation in igt_shared_ctx_exec
>       drm/i915/gem: Roll all of context creation together
>       drm/i915: Finalize contexts in GEM_CONTEXT_CREATE on version 13+
>       drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser"
>       Revert "drm/i915: Propagate errors on awaiting already signaled fences"
>       drm/i915: Remove allow_alloc from i915_gem_object_get_sg*
>       drm/i915: Drop error handling from dma_fence_work
>       Revert "drm/i915: Skip over MI_NOOP when parsing"
>       drm/i915: Correct the docs for intel_engine_cmd_parser
>       drm/i915: Call i915_globals_exit() after i915_pmu_exit()
>       drm/i915: Call i915_globals_exit() if pci_register_device() fails
>       drm/i915: Use a table for i915_init/exit (v2)
>       drm/i915: Make the kmem slab for i915_buddy_block a global
>       drm/i915/gem: Check object_can_migrate from object_migrate
>       drm/i915/gem: Refactor placement setup for i915_gem_object_create* (v2)
>       drm/i915/gem: Call i915_gem_flush_free_objects() in i915_gem_dumb_create()
>       drm/i915/gem: Unify user object creation (v3)
>       drm/i915/gem/ttm: Only call __i915_gem_object_set_pages if needed
>       drm/i915/gem: Always call obj->ops->migrate unless can_migrate fails
> 
> John Harrison (19):
>       drm/i915/huc: Update TGL and friends to HuC 7.9.3
>       drm/i915/adlp: Add ADL-P GuC/HuC firmware files
>       drm/i915/guc: Module load failure test for CT buffer creation
>       drm/i915/selftests: Allow for larger engine counts
>       drm/i915/xehp: Extra media engines - Part 1 (engine definitions)
>       drm/i915/xehp: Extra media engines - Part 2 (interrupts)
>       drm/i915/xehp: Extra media engines - Part 3 (reset)
>       drm/i915/guc: Make hangcheck work with GuC virtual engines
>       drm/i915/guc: Provide mmio list to be saved/restored on engine reset
>       drm/i915/guc: Don't complain about reset races
>       drm/i915/guc: Enable GuC engine reset
>       drm/i915/guc: Fix for error capture after full GPU reset with GuC
>       drm/i915/guc: Hook GuC scheduling policies up
>       drm/i915/guc: Connect reset modparam updates to GuC policy flags
>       drm/i915/guc: Include scheduling policies in the debugfs state dump
>       drm/i915/guc: Add golden context to GuC ADS
>       drm/i915/selftest: Better error reporting from hangcheck selftest
>       drm/i915/selftest: Fix hangcheck self test for GuC submission
>       drm/i915/selftest: Bump selftest timeouts for hangcheck
> 
> Joonas Lahtinen (1):
>       Merge tag 'topic/i915-ttm-2021-06-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-intel-gt-next
> 
> José Roberto de Souza (4):
>       drm/i915: Settle on "adl-x" in WA comments
>       drm/i915: Implement Wa_1508744258
>       drm/i915/adl_s: Extend Wa_1406941453
>       drm/i915: Extend Wa_1406941453 to adl-p
> 
> Lucas De Marchi (14):
>       drm/i915/gt: finish INTEL_GEN and friends conversion
>       drm/i915: do not abbreviate version in debugfs
>       drm/i915: Add release id version
>       drm/i915: Add XE_HP initial definitions
>       drm/i915/xehpsdv: add initial XeHP SDV definitions
>       drm/i915/gt: fix platform prefix
>       drm/i915/gt: nuke unused legacy engine hw_id
>       drm/i915/gt: rename legacy engine->hw_id to engine->gen6_hw_id
>       drm/i915/gt: nuke gen6_hw_id
>       drm/i915/gt: remove explicit CNL handling from intel_mocs.c
>       drm/i915/gt: remove explicit CNL handling from intel_sseu.c
>       drm/i915/gt: rename CNL references in intel_engine.h
>       drm/i915/gt: remove GRAPHICS_VER == 10
>       drm/i915/xehp: Fix missing sentinel on mcr_ranges_xehp
> 
> Maarten Lankhorst (2):
>       drm/i915: Fix missing docbook chapters for i915 uapi.
>       drm/i915: Add TTM offset argument to mmap.
> 
> Matt Roper (29):
>       drm/i915: Add GT support for multiple types of multicast steering
>       drm/i915: Add support for explicit L3BANK steering
>       drm/i915: Make pre-production detection use direct revid comparison
>       drm/i915/skl: Use revid->stepping tables
>       drm/i915/kbl: Drop pre-production revision from stepping table
>       drm/i915/bxt: Use revid->stepping tables
>       drm/i915/glk: Use revid->stepping tables
>       drm/i915/icl: Use revid->stepping tables
>       drm/i915/jsl_ehl: Use revid->stepping tables
>       drm/i915/rkl: Use revid->stepping tables
>       drm/i915/dg1: Use revid->stepping tables
>       drm/i915/cnl: Drop all workarounds
>       drm/i915/icl: Drop workarounds that only apply to pre-production steppings
>       Merge branch 'topic/revid_steppings' into drm-intel-gt-next
>       drm/i915: Fix application of WaInPlaceDecompressionHang
>       drm/i915/icl: Drop a couple unnecessary workarounds
>       drm/i915: Program DFR enable/disable as a GT workaround
>       drm/i915: Make GT workaround upper bounds exclusive
>       drm/i915/dg2: add DG2 platform info
>       Merge branch 'topic/xehp-dg2-definitions-2021-07-21' into drm-intel-gt-next
>       drm/i915/xehp: Define multicast register ranges
>       drm/i915/xehp: Xe_HP forcewake support
>       drm/i915/xehpsdv: Correct parameters for IS_XEHPSDV_GT_STEP()
>       drm/i915/dg2: Add forcewake table
>       drm/i915/xehpsdv: Add maximum sseu limits
>       drm/i915/dg2: DG2 uses the same sseu limits as XeHP SDV
>       drm/i915/xehpsdv: Define steering tables
>       drm/i915/dg2: Update steering tables
>       drm/i915/dg2: Add SQIDI steering
> 
> Matthew Auld (25):
>       drm/i915/ttm: add ttm_buddy_man
>       drm/i915/ttm: add i915_sg_from_buddy_resource
>       drm/i915/ttm: pass along the I915_BO_ALLOC_CONTIGUOUS
>       drm/i915/ttm: remove node usage in our naming
>       drm/i915/ttm: switch over to ttm_buddy_man
>       drm/i915/ttm: restore min_page_size behaviour
>       drm/i915/ttm: remove unused function
>       drm/i915/selftests: add back the selftest() hook for the buddy
>       drm/i915/ttm: fix static warning
>       drm/i915/gem: Introduce a selftest for the gem object migrate functionality
>       drm/i915: support forcing the page size with lmem
>       drm/i915/gtt: ignore min_page_size for paging structures
>       drm/i915/selftests: fix smatch warning in igt_check_blocks
>       drm/i915/selftests: fix smatch warning in mock_reserve
>       drm/i915: use consistent CPU mappings for pin_map users
>       drm/i915/uapi: convert drm_i915_gem_caching to kernel doc
>       drm/i915/uapi: convert drm_i915_gem_set_domain to kernel doc
>       drm/i915/gtt: drop the page table optimisation
>       drm/i915/uapi: reject caching ioctls for discrete
>       drm/i915/uapi: convert drm_i915_gem_userptr to kernel doc
>       drm/i915/uapi: reject set_domain for discrete
>       drm/i915: document caching related bits
>       drm/i915/ehl: unconditionally flush the pages on acquire
>       drm/i915/selftests: prefer the create_user helper
>       drm/i915/xehp: Changes to ss/eu definitions
> 
> Matthew Brost (52):
>       drm/i915: Move priolist to new i915_sched_engine object
>       drm/i915: Add i915_sched_engine_is_empty function
>       drm/i915: Reset sched_engine.no_priolist immediately after dequeue
>       drm/i915: Move active tracking to i915_sched_engine
>       drm/i915: Move engine->schedule to i915_sched_engine
>       drm/i915: Add kick_backend function to i915_sched_engine
>       drm/i915: Update i915_scheduler to operate on i915_sched_engine
>       drm/i915: Move submission tasklet to i915_sched_engine
>       drm/doc/rfc: i915 GuC submission / DRM scheduler
>       drm/doc/rfc: i915 new parallel submission uAPI plan
>       drm/i915/guc: Relax CTB response timeout
>       drm/i915/guc: Improve error message for unsolicited CT response
>       drm/i915/guc: Increase size of CTB buffers
>       drm/i915/guc: Add non blocking CTB send function
>       drm/i915/guc: Add stall timer to non blocking CTB send function
>       drm/i915/guc: Optimize CTB writes and reads
>       drm/i915/guc: Add new GuC interface defines and structures
>       drm/i915/guc: Remove GuC stage descriptor, add LRC descriptor
>       drm/i915/guc: Add LRC descriptor context lookup array
>       drm/i915/guc: Implement GuC submission tasklet
>       drm/i915/guc: Add bypass tasklet submission path to GuC
>       drm/i915/guc: Implement GuC context operations for new inteface
>       drm/i915/guc: Insert fence on context when deregistering
>       drm/i915/guc: Defer context unpin until scheduling is disabled
>       drm/i915/guc: Disable engine barriers with GuC during unpin
>       drm/i915/guc: Extend deregistration fence to schedule disable
>       drm/i915: Disable preempt busywait when using GuC scheduling
>       drm/i915/guc: Ensure request ordering via completion fences
>       drm/i915/guc: Disable semaphores when using GuC scheduling
>       drm/i915/guc: Ensure G2H response has space in buffer
>       drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC
>       drm/i915/guc: Update GuC debugfs to support new GuC
>       drm/i915/guc: Add trace point for GuC submit
>       drm/i915: Add intel_context tracing
>       drm/i915/guc: GuC virtual engines
>       drm/i915: Hold reference to intel_context over life of i915_request
>       drm/i915/guc: Disable bonding extension with GuC submission
>       drm/i915/guc: Direct all breadcrumbs for a class to single breadcrumbs
>       drm/i915: Add i915_sched_engine destroy vfunc
>       drm/i915: Move active request tracking to a vfunc
>       drm/i915/guc: Reset implementation for new GuC interface
>       drm/i915: Reset GPU immediately if submission is disabled
>       drm/i915/guc: Add disable interrupts to guc sanitize
>       drm/i915/guc: Suspend/resume implementation for new interface
>       drm/i915/guc: Handle context reset notification
>       drm/i915/guc: Handle engine reset failure notification
>       drm/i915/guc: Enable the timer expired interrupt for GuC
>       drm/i915/guc: Capture error state on context reset
>       drm/i915/guc: Implement banned contexts for GuC submission
>       drm/i915/guc: Support request cancellation
>       drm/i915/selftest: Increase some timeouts in live_requests
>       drm/i915/guc: Implement GuC priority management
> 
> Michal Wajdeczko (3):
>       drm/i915/guc: Introduce unified HXG messages
>       drm/i915/guc: Update firmware to v62.0.0
>       drm/i915/doc: Include GuC ABI documentation
> 
> Prathap Kumar Valsan (1):
>       drm/i915/xehp: New engine context offsets
> 
> Rahul Kumar Singh (2):
>       drm/i915/selftest: Fix workarounds selftest for GuC submission
>       drm/i915/selftest: Fix MOCS selftest for GuC submission
> 
> Ramalingam C (1):
>       drm/i915/ttm: accelerated move implementation
> 
> Rodrigo Vivi (1):
>       Merge drm/drm-next into drm-intel-gt-next
> 
> Stuart Summers (1):
>       drm/i915/xehp: Handle new device context ID format
> 
> Tejas Upadhyay (2):
>       drm/i915/selftest: Extend ctx_timestamp ICL workaround to GEN11
>       drm/i915/adl_s: Fix dma_mask_size to 39 bit
> 
> Thomas Hellström (18):
>       drm/i915: Simplify userptr locking
>       drm/i915/ttm: Fix memory leaks
>       drm/i915/ttm: Calculate the object placement at get_pages time
>       drm/i915: Reference objects on the ww object list
>       drm/i915: Break out dma_resv ww locking utilities to separate files
>       drm/i915: Introduce a ww transaction helper
>       drm/i915/gem: Zap the client blt code
>       drm/i915/gem: Zap the i915_gem_object_blt code
>       drm/i915: Perform execbuffer object locking as a separate step
>       drm/i915/ttm: Fix incorrect assumptions about ttm_bo_validate() semantics
>       drm/i915: Update object placement flags to be mutable
>       drm/i915/ttm: Adjust gem flags and caching settings after a move
>       drm/i915/ttm: Use TTM for system memory
>       drm/i915: Reinstate the mmap ioctl for some platforms
>       drm/i915/gem: Implement object migration
>       drm/i915/display: Migrate objects to LMEM if possible for display
>       drm/i915/gem: Correct the locking and pin pattern for dma-buf (v8)
>       drm/i915/gem: Migrate to system at dma-buf attach time (v7)
> 
> Thomas Zimmermann (2):
>       drm/i915: Use the correct IRQ during resume
>       drm/i915: Drop all references to DRM IRQ midlayer
> 
> Tvrtko Ursulin (3):
>       drm/i915: Fix busy ioctl commentary
>       drm/i915: Document the Virtual Engine uAPI
>       drm/i915/xehp: VDBOX/VEBOX fusing registers are enable-based
> 
> Venkata Sandeep Dhanalakota (1):
>       drm/i915/gen12: Use fuse info to enable SFC
> 
> Ville Syrjälä (1):
>       drm/i915/gt: Fix -EDEADLK handling regression
> 
> Vinay Belgaumkar (14):
>       drm/i915/guc/slpc: Initial definitions for SLPC
>       drm/i915/guc/slpc: Gate Host RPS when SLPC is enabled
>       drm/i915/guc/slpc: Adding SLPC communication interfaces
>       drm/i915/guc/slpc: Allocate, initialize and release SLPC
>       drm/i915/guc/slpc: Enable SLPC and add related H2G events
>       drm/i915/guc/slpc: Remove BUG_ON in guc_submission_disable
>       drm/i915/guc/slpc: Add methods to set min/max frequency
>       drm/i915/guc/slpc: Add get max/min freq hooks
>       drm/i915/guc/slpc: Add debugfs for SLPC info
>       drm/i915/guc/slpc: Enable ARAT timer interrupt
>       drm/i915/guc/slpc: Cache platform frequency limits
>       drm/i915/guc/slpc: Sysfs hooks for SLPC
>       drm/i915/guc/slpc: Add SLPC selftest
>       drm/i915/guc/rc: Setup and enable GuCRC feature
> 
> Wan Jiabing (1):
>       drm/i915: Remove duplicate include of intel_region_lmem.h
> 
>  Documentation/gpu/i915.rst                         |   15 +
>  Documentation/gpu/rfc/i915_parallel_execbuf.h      |  122 +
>  Documentation/gpu/rfc/i915_scheduler.rst           |  148 +
>  Documentation/gpu/rfc/index.rst                    |    4 +
>  drivers/gpu/drm/drm_gem.c                          |    9 -
>  drivers/gpu/drm/i915/Kconfig.debug                 |    6 +
>  drivers/gpu/drm/i915/Makefile                      |   14 +-
>  drivers/gpu/drm/i915/display/intel_display.c       |    5 +-
>  drivers/gpu/drm/i915/display/intel_display_power.c |    2 +-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c      |    6 +-
>  drivers/gpu/drm/i915/display/intel_psr.c           |    4 +-
>  drivers/gpu/drm/i915/gem/i915_gem_clflush.c        |    4 +-
>  drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |  355 ---
>  drivers/gpu/drm/i915/gem/i915_gem_client_blt.h     |   21 -
>  drivers/gpu/drm/i915/gem/i915_gem_context.c        | 2920 +++++++++-----------
>  drivers/gpu/drm/i915/gem/i915_gem_context.h        |    6 +
>  drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |  196 +-
>  drivers/gpu/drm/i915/gem/i915_gem_create.c         |  188 +-
>  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   58 +-
>  drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   11 +-
>  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  699 +----
>  drivers/gpu/drm/i915/gem/i915_gem_internal.c       |    4 +-
>  drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  160 +-
>  drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   12 +-
>  drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  107 +-
>  drivers/gpu/drm/i915/gem/i915_gem_object.c         |  350 ++-
>  drivers/gpu/drm/i915/gem/i915_gem_object.h         |   69 +-
>  drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |  461 ---
>  drivers/gpu/drm/i915/gem/i915_gem_object_blt.h     |   39 -
>  drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  255 +-
>  drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   54 +-
>  drivers/gpu/drm/i915/gem/i915_gem_phys.c           |    2 +-
>  drivers/gpu/drm/i915/gem/i915_gem_region.c         |   23 +-
>  drivers/gpu/drm/i915/gem/i915_gem_region.h         |    1 +
>  drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   30 +-
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |    3 +-
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  965 +++++++
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |   49 +
>  drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |  117 +-
>  drivers/gpu/drm/i915/gem/i915_gem_wait.c           |   23 +-
>  .../gpu/drm/i915/gem/selftests/huge_gem_object.c   |    4 +-
>  drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |    8 +-
>  .../drm/i915/gem/selftests/i915_gem_client_blt.c   |  114 +-
>  .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  127 +-
>  .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |  190 +-
>  .../drm/i915/gem/selftests/i915_gem_execbuffer.c   |    4 +
>  .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  |  243 ++
>  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  164 +-
>  .../drm/i915/gem/selftests/i915_gem_object_blt.c   |  597 ----
>  drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c |    3 +-
>  drivers/gpu/drm/i915/gem/selftests/mock_context.c  |   67 +-
>  drivers/gpu/drm/i915/gem/selftests/mock_context.h  |    4 +-
>  drivers/gpu/drm/i915/gt/debugfs_gt_pm.c            |   10 +-
>  drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |   17 +-
>  drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   73 +-
>  drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |   44 +-
>  drivers/gpu/drm/i915/gt/intel_breadcrumbs.h        |   16 +-
>  drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |    7 +
>  drivers/gpu/drm/i915/gt/intel_context.c            |   88 +-
>  drivers/gpu/drm/i915/gt/intel_context.h            |   56 +-
>  drivers/gpu/drm/i915/gt/intel_context_param.c      |   63 -
>  drivers/gpu/drm/i915/gt/intel_context_param.h      |    6 +-
>  drivers/gpu/drm/i915/gt/intel_context_types.h      |   64 +-
>  drivers/gpu/drm/i915/gt/intel_engine.h             |   87 +-
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  420 +--
>  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |   74 +-
>  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h   |    4 +
>  drivers/gpu/drm/i915/gt/intel_engine_pm.c          |    4 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h       |   93 +-
>  drivers/gpu/drm/i915/gt/intel_engine_user.c        |    6 +-
>  .../gpu/drm/i915/gt/intel_execlists_submission.c   |  604 ++--
>  .../gpu/drm/i915/gt/intel_execlists_submission.h   |   12 +-
>  drivers/gpu/drm/i915/gt/intel_ggtt.c               |    6 +-
>  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |    2 +-
>  drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |    2 +
>  drivers/gpu/drm/i915/gt/intel_gt.c                 |  197 +-
>  drivers/gpu/drm/i915/gt/intel_gt.h                 |   10 +
>  drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |   10 +-
>  drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   13 +-
>  drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   11 +-
>  drivers/gpu/drm/i915/gt/intel_gt_requests.c        |   21 +-
>  drivers/gpu/drm/i915/gt/intel_gt_requests.h        |    9 +-
>  drivers/gpu/drm/i915/gt/intel_gt_types.h           |   37 +
>  drivers/gpu/drm/i915/gt/intel_gtt.c                |   20 +-
>  drivers/gpu/drm/i915/gt/intel_gtt.h                |   18 +-
>  drivers/gpu/drm/i915/gt/intel_lrc.c                |  117 +-
>  drivers/gpu/drm/i915/gt/intel_lrc_reg.h            |    3 +-
>  drivers/gpu/drm/i915/gt/intel_migrate.c            |  688 +++++
>  drivers/gpu/drm/i915/gt/intel_migrate.h            |   65 +
>  drivers/gpu/drm/i915/gt/intel_migrate_types.h      |   15 +
>  drivers/gpu/drm/i915/gt/intel_mocs.c               |    2 +-
>  drivers/gpu/drm/i915/gt/intel_rc6.c                |   49 +-
>  drivers/gpu/drm/i915/gt/intel_region_lmem.c        |    7 +-
>  drivers/gpu/drm/i915/gt/intel_renderstate.h        |    1 +
>  drivers/gpu/drm/i915/gt/intel_reset.c              |   56 +-
>  drivers/gpu/drm/i915/gt/intel_ring.h               |    1 +
>  drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   70 +-
>  drivers/gpu/drm/i915/gt/intel_rps.c                |  209 +-
>  drivers/gpu/drm/i915/gt/intel_rps.h                |   10 +
>  drivers/gpu/drm/i915/gt/intel_sseu.c               |  126 +-
>  drivers/gpu/drm/i915/gt/intel_sseu.h               |   10 +-
>  drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |    8 +-
>  drivers/gpu/drm/i915/gt/intel_workarounds.c        |  498 ++--
>  drivers/gpu/drm/i915/gt/intel_workarounds_types.h  |    1 +
>  drivers/gpu/drm/i915/gt/mock_engine.c              |   51 +-
>  drivers/gpu/drm/i915/gt/selftest_context.c         |   10 +
>  .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   22 +
>  .../gpu/drm/i915/gt/selftest_engine_heartbeat.h    |    2 +
>  drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |    4 +-
>  drivers/gpu/drm/i915/gt/selftest_execlists.c       |  307 +-
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  330 ++-
>  drivers/gpu/drm/i915/gt/selftest_lrc.c             |    6 +-
>  drivers/gpu/drm/i915/gt/selftest_migrate.c         |  669 +++++
>  drivers/gpu/drm/i915/gt/selftest_mocs.c            |   52 +-
>  drivers/gpu/drm/i915/gt/selftest_reset.c           |    2 +-
>  drivers/gpu/drm/i915/gt/selftest_slpc.c            |  311 +++
>  drivers/gpu/drm/i915/gt/selftest_timeline.c        |    2 +-
>  drivers/gpu/drm/i915/gt/selftest_workarounds.c     |  162 +-
>  drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |  129 +-
>  .../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h  |  235 ++
>  .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h |  127 +-
>  .../i915/gt/uc/abi/guc_communication_mmio_abi.h    |   65 +-
>  drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h  |  213 ++
>  drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  206 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  119 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  487 +++-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h         |    4 +
>  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |  703 +++--
>  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h          |   36 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c     |   47 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  167 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |   29 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |    6 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c          |   80 +
>  drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h          |   31 +
>  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |  626 +++++
>  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h        |   42 +
>  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h  |   29 +
>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 2895 +++++++++++++++++--
>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   18 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  126 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc.h              |   15 +
>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |   27 +-
>  drivers/gpu/drm/i915/gvt/scheduler.c               |    7 +-
>  drivers/gpu/drm/i915/i915_active.c                 |   37 +-
>  drivers/gpu/drm/i915/i915_active.h                 |    3 +
>  drivers/gpu/drm/i915/i915_buddy.c                  |  421 +++
>  drivers/gpu/drm/i915/i915_buddy.h                  |  135 +
>  drivers/gpu/drm/i915/i915_cmd_parser.c             |  203 +-
>  drivers/gpu/drm/i915/i915_debugfs_params.c         |   32 +
>  drivers/gpu/drm/i915/i915_drv.c                    |    9 +-
>  drivers/gpu/drm/i915/i915_drv.h                    |  228 +-
>  drivers/gpu/drm/i915/i915_gem.c                    |   63 +-
>  drivers/gpu/drm/i915/i915_gem.h                    |   12 -
>  drivers/gpu/drm/i915/i915_gem_evict.c              |    1 +
>  drivers/gpu/drm/i915/i915_gem_ww.c                 |   63 +
>  drivers/gpu/drm/i915/i915_gem_ww.h                 |   50 +
>  drivers/gpu/drm/i915/i915_getparam.c               |    7 +-
>  drivers/gpu/drm/i915/i915_globals.c                |  160 --
>  drivers/gpu/drm/i915/i915_globals.h                |   37 -
>  drivers/gpu/drm/i915/i915_gpu_error.c              |   27 +-
>  drivers/gpu/drm/i915/i915_module.c                 |  113 +
>  drivers/gpu/drm/i915/i915_pci.c                    |  129 +-
>  drivers/gpu/drm/i915/i915_pci.h                    |    8 +
>  drivers/gpu/drm/i915/i915_perf.c                   |   36 +-
>  drivers/gpu/drm/i915/i915_perf.h                   |    2 +-
>  drivers/gpu/drm/i915/i915_pmu.c                    |    6 +-
>  drivers/gpu/drm/i915/i915_pmu.h                    |    4 +-
>  drivers/gpu/drm/i915/i915_reg.h                    |   48 +-
>  drivers/gpu/drm/i915/i915_request.c                |  307 +-
>  drivers/gpu/drm/i915/i915_request.h                |   38 +-
>  drivers/gpu/drm/i915/i915_scatterlist.c            |   80 +
>  drivers/gpu/drm/i915/i915_scatterlist.h            |    5 +
>  drivers/gpu/drm/i915/i915_scheduler.c              |  220 +-
>  drivers/gpu/drm/i915/i915_scheduler.h              |   54 +-
>  drivers/gpu/drm/i915/i915_scheduler_types.h        |  111 +
>  drivers/gpu/drm/i915/i915_sw_fence_work.c          |    5 +-
>  drivers/gpu/drm/i915/i915_sw_fence_work.h          |    2 +-
>  drivers/gpu/drm/i915/i915_sysfs.c                  |   83 +-
>  drivers/gpu/drm/i915/i915_trace.h                  |  201 +-
>  drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  258 ++
>  drivers/gpu/drm/i915/i915_ttm_buddy_manager.h      |   56 +
>  drivers/gpu/drm/i915/i915_vma.c                    |   34 +-
>  drivers/gpu/drm/i915/i915_vma.h                    |    3 +
>  drivers/gpu/drm/i915/intel_device_info.c           |   16 +-
>  drivers/gpu/drm/i915/intel_device_info.h           |   12 +-
>  drivers/gpu/drm/i915/intel_memory_region.c         |   63 +-
>  drivers/gpu/drm/i915/intel_memory_region.h         |   30 +-
>  drivers/gpu/drm/i915/intel_pm.c                    |   22 +-
>  drivers/gpu/drm/i915/intel_region_ttm.c            |  150 +-
>  drivers/gpu/drm/i915/intel_region_ttm.h            |   23 +-
>  drivers/gpu/drm/i915/intel_step.c                  |  134 +-
>  drivers/gpu/drm/i915/intel_step.h                  |    5 +
>  drivers/gpu/drm/i915/intel_uncore.c                |  422 ++-
>  drivers/gpu/drm/i915/intel_uncore.h                |   20 +-
>  drivers/gpu/drm/i915/selftests/i915_buddy.c        |  787 ++++++
>  .../gpu/drm/i915/selftests/i915_live_selftests.h   |    5 +-
>  .../gpu/drm/i915/selftests/i915_mock_selftests.h   |    2 +-
>  .../gpu/drm/i915/selftests/i915_perf_selftests.h   |    2 +-
>  drivers/gpu/drm/i915/selftests/i915_request.c      |    4 +-
>  drivers/gpu/drm/i915/selftests/i915_selftest.c     |    4 +-
>  drivers/gpu/drm/i915/selftests/igt_flush_test.c    |    2 +-
>  drivers/gpu/drm/i915/selftests/igt_live_test.c     |    2 +-
>  drivers/gpu/drm/i915/selftests/igt_mmap.c          |   25 +-
>  drivers/gpu/drm/i915/selftests/igt_mmap.h          |   12 +-
>  .../gpu/drm/i915/selftests/intel_memory_region.c   |  257 +-
>  .../drm/i915/selftests/intel_scheduler_helpers.c   |   88 +
>  .../drm/i915/selftests/intel_scheduler_helpers.h   |   33 +
>  drivers/gpu/drm/i915/selftests/intel_uncore.c      |    2 +
>  drivers/gpu/drm/i915/selftests/mock_gem_device.c   |    3 +-
>  drivers/gpu/drm/i915/selftests/mock_gtt.c          |    1 -
>  drivers/gpu/drm/i915/selftests/mock_region.c       |   29 +-
>  include/drm/drm_vma_manager.h                      |    2 +-
>  include/uapi/drm/i915_drm.h                        |  498 +++-
>  214 files changed, 18965 insertions(+), 8462 deletions(-)
>  create mode 100644 Documentation/gpu/rfc/i915_parallel_execbuf.h
>  create mode 100644 Documentation/gpu/rfc/i915_scheduler.rst
>  delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c
>  delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_client_blt.h
>  delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c
>  delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_object_blt.h
>  create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>  create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm.h
>  create mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_migrate.c
>  delete mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_object_blt.c
>  delete mode 100644 drivers/gpu/drm/i915/gt/intel_context_param.c
>  create mode 100644 drivers/gpu/drm/i915/gt/intel_migrate.c
>  create mode 100644 drivers/gpu/drm/i915/gt/intel_migrate.h
>  create mode 100644 drivers/gpu/drm/i915/gt/intel_migrate_types.h
>  create mode 100644 drivers/gpu/drm/i915/gt/selftest_migrate.c
>  create mode 100644 drivers/gpu/drm/i915/gt/selftest_slpc.c
>  create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h
>  create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c
>  create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h
>  create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>  create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h
>  create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>  create mode 100644 drivers/gpu/drm/i915/i915_buddy.c
>  create mode 100644 drivers/gpu/drm/i915/i915_buddy.h
>  create mode 100644 drivers/gpu/drm/i915/i915_gem_ww.c
>  create mode 100644 drivers/gpu/drm/i915/i915_gem_ww.h
>  delete mode 100644 drivers/gpu/drm/i915/i915_globals.c
>  delete mode 100644 drivers/gpu/drm/i915/i915_globals.h
>  create mode 100644 drivers/gpu/drm/i915/i915_module.c
>  create mode 100644 drivers/gpu/drm/i915/i915_pci.h
>  create mode 100644 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>  create mode 100644 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>  create mode 100644 drivers/gpu/drm/i915/selftests/i915_buddy.c
>  create mode 100644 drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c
>  create mode 100644 drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-08-06 10:06 Joonas Lahtinen
  2021-08-06 10:10 ` Joonas Lahtinen
  0 siblings, 1 reply; 37+ messages in thread
From: Joonas Lahtinen @ 2021-08-06 10:06 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Sean Paul,
	Maarten Lankhorst, Maxime Ripard, dri-devel, intel-gfx,
	dim-tools

Hi Dave & Daniel,

Sorry for the big PR in advance. Had the summer vacations and did not
notice until tool late how many patches were in already before leaving.

As requested, there is a lot of refactoring to increase the use of TTM
allocator and prep for DRM scheduler. Note that at times the patches trade
simplicity for performance and revert optimizations not seen as critical.
So some performance regressions are expected.

As an example is dropping of faster GPU relocation path for older platforms,
which should be mitigated by updating to the latest UMD versions to regain
the perf.

This PR drops various bits of uAPI where userspace has dropped the ball after reviews
have been completed on both sides (Thanks Jason for doing the due-diligence!). [1]
Due to the complexity of tracing back who used what, I think we could do better in the
future to avoid such situations to begin with. See below for my suggestion [2].

In addition to the refactoring and uAPI cleanup there is preliminay code for
ADL-P/XeHP and DG2 platforms. Fixes for ADL-S and removal of CNL code.
A couple of fixes that have been Cc: stable already. Removing unnecessary
workarounds per stepping and adding missing for Gen12 iGFX.

I915_MMAP_OFFSET_FIXED is also added to to align with the static/fixed caching
mode per BO instead of per-mapping mode (for dGFX only). There is GuC firmware
interface update and backend code major rework that unblock enabling GuC on Gen11
(not on by default). Then there is the addition of the GuCRC power management
feature which can be enabled for Gen12+ when submission is enabled.

Then there is finally the drm-next backmerge and 3 topic branch merges.

I think that is mostly all. I tried to summarize much in the tag description so
it should hopefully not be horribly long...

Regards, Joonas

[1] Given that Jason is only human and there is no way to automate this analysis, we
may have to bring something back as fixes if we find breakage (like with the MMAP IOCTL).

[2] As we first require to merge the kernel code, should we introduce some further rules
that the userspace has to land their code before the final kernel version release? If
that is not followed through, we would neuter the new uAPI with as small patch as possible
in the final release candidate and then remove it in next release. Thoughts?

***

drm-intel-gt-next-2021-08-06-1:

UAPI Changes:

- Add I915_MMAP_OFFSET_FIXED

  On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid
  type. On devices without local memory, this caching mode is invalid.

  As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will
  be used, depending on the object placement on creation. WB will be used
  when the object can only exist in system memory, WC otherwise.

  Userspace: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11888

- Reinstate the mmap ioctl for (already released) integrated Gen12 platforms

  Rationale: Otherwise media driver breaks eg. for ADL-P. Long term goal is
  still to sunset the IOCTL even for integrated and require using mmap_offset.

- Reject caching/set_domain IOCTLs on discrete

  Expected to become immutable property of the BO

- Disallow changing context parameters after first use on Gen12 and earlier
- Require setting context parameters at creation on platforms after Gen12

  Rationale (for both): Allow less dynamic changes to the context to simplify
  the implementation and avoid user shooting theirselves in the foot.

- Drop I915_CONTEXT_PARAM_RINGSIZE

  Userspace PR for compute-driver has not been merged

- Drop I915_CONTEXT_PARAM_NO_ZEROMAP

  Userspace PR for libdrm / Beignet was never landed

- Drop CONTEXT_CLONE API

  Userspace PR for Mesa was never landed

- Drop getparam support for I915_CONTEXT_PARAM_ENGINES

  Only existed for symmetry wrt. setparam, never used.

- Disallow bonding of virtual engines

  Drop the prep work, no hardware has been released needing it.

- (Implicit) Disable gpu relocations

  Media userspace was the last userspace to still use them. They
  have converted so performance can be regained with an update.

Core Changes:

- Merge topic branch 'topic/i915-ttm-2021-06-11' (from Maarten)
- Merge topic branch 'topic/revid_steppings' (from Matt R)
- Merge topic branch 'topic/xehp-dg2-definitions-2021-07-21' (from Matt R)
- Backmerges drm-next (Rodrigo)

Driver Changes:

- Initial workarounds for ADL-P (Clint)
- Preliminary code for XeHP/DG2 (Stuart, Umesh, Matt R, Prathap, Ram,
  Venkata, Akeem, Tvrtko, John, Lucas)
- Fix ADL-S DMA mask size to 39 bits (Tejas)
- Remove code for CNL (Lucas)
- Add ADL-P GuC/HuC firmwares (John)
- Update HuC to 7.9.3 for TGL/ADL-S/RKL (John)
- Fix -EDEADLK handling regression (Ville)
- Implement Wa_1508744258 for DG1 and Gen12 iGFX (Jose)
- Extend Wa_1406941453 to ADL-S (Jose)
- Drop unnecessary workarounds per stepping for SKL/BXT/ICL (Matt R)
- Use fuse info to enable SFC on Gen12 (Venkata)
- Unconditionally flush the pages on acquire on EHL/JSL (Matt A)
- Probe existence of backing struct pages upon userptr creation (Chris, Matt A)

- Add an intermediate GEM proto-context to delay real context creation (Jason)
- Implement SINGLE_TIMELINE with a syncobj (Jason)
- Set the watchdog timeout directly in intel_context_set_gem (Jason)
- Disallow userspace from creating contexts with too many engines (Jason)
- Revert "drm/i915/gem: Asynchronous cmdparser" (Jason)
- Revert "drm/i915: Propagate errors on awaiting already signaled fences" (Jason)
- Revert "drm/i915: Skip over MI_NOOP when parsing" (Jason)
- Revert "drm/i915: Shrink the GEM kmem_caches upon idling" (Daniel)
- Always let TTM handle object migration (Jason)
- Correct the locking and pin pattern for dma-buf (Thomas H, Michael R, Jason)
- Migrate to system at dma-buf attach time (Thomas, Michael R)

- MAJOR refactoring of the GuC backend code to allow for enabling on Gen11+
  (Matt B, John, Michal Wa., Fernando, Daniele, Vinay)
- Update GuC firmware interface to v62.0.0 (John, Michal Wa., Matt B)
- Add GuCRC feature to hand over the control of HW RC6 to the GuC on
  Gen12+ when GuC submission is enabled (Vinay, Sujaritha, Daniele,
  John, Tvrtko)
- Use the correct IRQ during resume and eliminate DRM IRQ midlayer (Thomas Z)
- Add pipelined page migration and clearing (Chris, Thomas H)
- Use TTM for system memory on discrete (Thomas H)
- Implement object migration for display vs. dma-buf (Thomas H)
- Perform execbuffer object locking as a separate step (Thomas H)
- Add support for explicit L3BANK steering (Matt, Daniele)
- Remove duplicated call to ops->pread (Daniel)
- Fix pagefault disabling in the first execbuf slowpath (Daniel)
- Simplify userptr locking (Thomas H)
- Improvements to the GuC CTB code (Matt B, John)
- Make GT workaround upper bounds exclusive (Matt R)
- Check for nomodeset in i915_init() first (Daniel)
- Delete now unused gpu reloc code (Daniel)

- Document RFC plans for GuC submission, DRM scheduler and new parallel
  submit uAPI (Matt B)
- Reintroduce buddy allocator this time with TTM (Matt A)
- Support forcing page size with LMEM (Matt A)
- Add i915_sched_engine to abstract a submission queue between backends (Matt B)
- Use accelerated move in TTM (Ram)
- Fix memory leaks from TTM backend (Thomas H)
- Introduce WW transaction helper (Thomas H)
- Improve debug Kconfig texts a bit (Daniel)
- Unify user object creation code (Jason)
- Use a table for i915_init/exit (Jason)
- Move slabs to module init/exit (Daniel)
- Remove now unused i915_globals (Daniel)
- Extract i915_module.c (Daniel)

- Consistently use adl-p/adl-s in WA comments (Jose)
- Finish INTEL_GEN and friends conversion (Lucas)
- Correct variable/function namings (Lucas)
- Code checker fixes (Wan, Matt A)
- Tracepoint improvements (Matt B)
- Kerneldoc improvements (Tvrtko, Jason, Matt A, Maarten)
- Selftest improvements (Chris, Matt A, Tejas, Thomas H, John, Matt B,
  Rahul, Vinay)
The following changes since commit e73f0f0ee7541171d89f2e2491130c7771ba58d3:

  Linux 5.14-rc1 (2021-07-11 15:07:40 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-08-06-1

for you to fetch changes up to 927dfdd09d8c03ba100ed0c8c3915f8e1d1f5556:

  drm/i915/dg2: Add SQIDI steering (2021-08-05 08:07:25 -0700)

----------------------------------------------------------------
UAPI Changes:

- Add I915_MMAP_OFFSET_FIXED

  On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid
  type. On devices without local memory, this caching mode is invalid.

  As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will
  be used, depending on the object placement on creation. WB will be used
  when the object can only exist in system memory, WC otherwise.

  Userspace: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11888

- Reinstate the mmap ioctl for (already released) integrated Gen12 platforms

  Rationale: Otherwise media driver breaks eg. for ADL-P. Long term goal is
  still to sunset the IOCTL even for integrated and require using mmap_offset.

- Reject caching/set_domain IOCTLs on discrete

  Expected to become immutable property of the BO

- Disallow changing context parameters after first use on Gen12 and earlier
- Require setting context parameters at creation on platforms after Gen12

  Rationale (for both): Allow less dynamic changes to the context to simplify
  the implementation and avoid user shooting theirselves in the foot.

- Drop I915_CONTEXT_PARAM_RINGSIZE

  Userspace PR for compute-driver has not been merged

- Drop I915_CONTEXT_PARAM_NO_ZEROMAP

  Userspace PR for libdrm / Beignet was never landed

- Drop CONTEXT_CLONE API

  Userspace PR for Mesa was never landed

- Drop getparam support for I915_CONTEXT_PARAM_ENGINES

  Only existed for symmetry wrt. setparam, never used.

- Disallow bonding of virtual engines

  Drop the prep work, no hardware has been released needing it.

- (Implicit) Disable gpu relocations

  Media userspace was the last userspace to still use them. They
  have converted so performance can be regained with an update.

Core Changes:

- Merge topic branch 'topic/i915-ttm-2021-06-11' (from Maarten)
- Merge topic branch 'topic/revid_steppings' (from Matt R)
- Merge topic branch 'topic/xehp-dg2-definitions-2021-07-21' (from Matt R)
- Backmerges drm-next (Rodrigo)

Driver Changes:

- Initial workarounds for ADL-P (Clint)
- Preliminary code for XeHP/DG2 (Stuart, Umesh, Matt R, Prathap, Ram,
  Venkata, Akeem, Tvrtko, John, Lucas)
- Fix ADL-S DMA mask size to 39 bits (Tejas)
- Remove code for CNL (Lucas)
- Add ADL-P GuC/HuC firmwares (John)
- Update HuC to 7.9.3 for TGL/ADL-S/RKL (John)
- Fix -EDEADLK handling regression (Ville)
- Implement Wa_1508744258 for DG1 and Gen12 iGFX (Jose)
- Extend Wa_1406941453 to ADL-S (Jose)
- Drop unnecessary workarounds per stepping for SKL/BXT/ICL (Matt R)
- Use fuse info to enable SFC on Gen12 (Venkata)
- Unconditionally flush the pages on acquire on EHL/JSL (Matt A)
- Probe existence of backing struct pages upon userptr creation (Chris, Matt A)

- Add an intermediate GEM proto-context to delay real context creation (Jason)
- Implement SINGLE_TIMELINE with a syncobj (Jason)
- Set the watchdog timeout directly in intel_context_set_gem (Jason)
- Disallow userspace from creating contexts with too many engines (Jason)
- Revert "drm/i915/gem: Asynchronous cmdparser" (Jason)
- Revert "drm/i915: Propagate errors on awaiting already signaled fences" (Jason)
- Revert "drm/i915: Skip over MI_NOOP when parsing" (Jason)
- Revert "drm/i915: Shrink the GEM kmem_caches upon idling" (Daniel)
- Always let TTM handle object migration (Jason)
- Correct the locking and pin pattern for dma-buf (Thomas H, Michael R, Jason)
- Migrate to system at dma-buf attach time (Thomas, Michael R)

- MAJOR refactoring of the GuC backend code to allow for enabling on Gen11+
  (Matt B, John, Michal Wa., Fernando, Daniele, Vinay)
- Update GuC firmware interface to v62.0.0 (John, Michal Wa., Matt B)
- Add GuCRC feature to hand over the control of HW RC6 to the GuC on
  Gen12+ when GuC submission is enabled (Vinay, Sujaritha, Daniele,
  John, Tvrtko)
- Use the correct IRQ during resume and eliminate DRM IRQ midlayer (Thomas Z)
- Add pipelined page migration and clearing (Chris, Thomas H)
- Use TTM for system memory on discrete (Thomas H)
- Implement object migration for display vs. dma-buf (Thomas H)
- Perform execbuffer object locking as a separate step (Thomas H)
- Add support for explicit L3BANK steering (Matt, Daniele)
- Remove duplicated call to ops->pread (Daniel)
- Fix pagefault disabling in the first execbuf slowpath (Daniel)
- Simplify userptr locking (Thomas H)
- Improvements to the GuC CTB code (Matt B, John)
- Make GT workaround upper bounds exclusive (Matt R)
- Check for nomodeset in i915_init() first (Daniel)
- Delete now unused gpu reloc code (Daniel)

- Document RFC plans for GuC submission, DRM scheduler and new parallel
  submit uAPI (Matt B)
- Reintroduce buddy allocator this time with TTM (Matt A)
- Support forcing page size with LMEM (Matt A)
- Add i915_sched_engine to abstract a submission queue between backends (Matt B)
- Use accelerated move in TTM (Ram)
- Fix memory leaks from TTM backend (Thomas H)
- Introduce WW transaction helper (Thomas H)
- Improve debug Kconfig texts a bit (Daniel)
- Unify user object creation code (Jason)
- Use a table for i915_init/exit (Jason)
- Move slabs to module init/exit (Daniel)
- Remove now unused i915_globals (Daniel)
- Extract i915_module.c (Daniel)

- Consistently use adl-p/adl-s in WA comments (Jose)
- Finish INTEL_GEN and friends conversion (Lucas)
- Correct variable/function namings (Lucas)
- Code checker fixes (Wan, Matt A)
- Tracepoint improvements (Matt B)
- Kerneldoc improvements (Tvrtko, Jason, Matt A, Maarten)
- Selftest improvements (Chris, Matt A, Tejas, Thomas H, John, Matt B,
  Rahul, Vinay)

----------------------------------------------------------------
Anusha Srivatsa (1):
      drm/i915/step: s/<platform>_revid_tbl/<platform>_revids

Chris Wilson (8):
      drm/i915/selftests: Reorder tasklet_disable vs local_bh_disable
      drm/i915/gt: Add an insert_entry for gen8_ppgtt
      drm/i915/gt: Add a routine to iterate over the pagetables of a GTT
      drm/i915/gt: Export the pinned context constructor and destructor
      drm/i915/gt: Pipelined page migration
      drm/i915/gt: Pipelined clear
      drm/i915/gt: Setup a default migration context on the GT
      drm/i915/userptr: Probe existence of backing struct pages upon creation

Clint Taylor (1):
      drm/i915/adl_p: Add initial ADL_P Workarounds

Daniel Vetter (17):
      drm/i915/gem: Remove duplicated call to ops->pread
      drm/i915/eb: Fix pagefault disabling in the first slowpath
      drm/i915: Improve debug Kconfig texts a bit
      drm/i915: Ditch i915 globals shrink infrastructure
      drm/i915: Check for nomodeset in i915_init() first
      drm/i915: move i915_active slab to direct module init/exit
      drm/i915: move i915_buddy slab to direct module init/exit
      drm/i915: move intel_context slab to direct module init/exit
      drm/i915: move gem_context slab to direct module init/exit
      drm/i915: move gem_objects slab to direct module init/exit
      drm/i915: move request slabs to direct module init/exit
      drm/i915: move scheduler slabs to direct module init/exit
      drm/i915: move vma slab to direct module init/exit
      drm/i915: Remove i915_globals
      drm/i915: Extract i915_module.c
      drm/i915: Disable gpu relocations
      drm/i915: delete gpu reloc code

Daniele Ceraolo Spurio (3):
      drm/i915: extract steered reg access to common function
      drm/i915/guc: Unblock GuC submission on Gen11+
      drm/i915/xehp: handle new steering options

Jason Ekstrand (46):
      drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE
      drm/i915: Stop storing the ring size in the ring pointer (v3)
      drm/i915: Drop I915_CONTEXT_PARAM_NO_ZEROMAP
      drm/i915/gem: Set the watchdog timeout directly in intel_context_set_gem (v2)
      drm/i915/gem: Return void from context_apply_all
      drm/i915: Drop the CONTEXT_CLONE API (v2)
      drm/i915: Implement SINGLE_TIMELINE with a syncobj (v4)
      drm/i915: Drop getparam support for I915_CONTEXT_PARAM_ENGINES
      drm/i915/gem: Disallow bonding of virtual engines (v3)
      drm/i915/gem: Remove engine auto-magic with FENCE_SUBMIT (v2)
      drm/i915/request: Remove the hook from await_execution
      drm/i915/gem: Disallow creating contexts with too many engines
      drm/i915: Stop manually RCU banging in reset_stats_ioctl (v2)
      drm/i915/gem: Add a separate validate_priority helper
      drm/i915: Add gem/i915_gem_context.h to the docs
      drm/i915/gem: Add an intermediate proto_context struct (v5)
      drm/i915/gem: Rework error handling in default_engines
      drm/i915/gem: Optionally set SSEU in intel_context_set_gem
      drm/i915: Add an i915_gem_vm_lookup helper
      drm/i915/gem: Make an alignment check more sensible
      drm/i915/gem: Use the proto-context to handle create parameters (v5)
      drm/i915/gem: Return an error ptr from context_lookup
      drm/i915/gt: Drop i915_address_space::file (v2)
      drm/i915/gem: Delay context creation (v3)
      drm/i915/gem: Don't allow changing the VM on running contexts (v4)
      drm/i915/gem: Don't allow changing the engine set on running contexts (v3)
      drm/i915/selftests: Take a VM in kernel_context()
      i915/gem/selftests: Assign the VM at context creation in igt_shared_ctx_exec
      drm/i915/gem: Roll all of context creation together
      drm/i915: Finalize contexts in GEM_CONTEXT_CREATE on version 13+
      drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser"
      Revert "drm/i915: Propagate errors on awaiting already signaled fences"
      drm/i915: Remove allow_alloc from i915_gem_object_get_sg*
      drm/i915: Drop error handling from dma_fence_work
      Revert "drm/i915: Skip over MI_NOOP when parsing"
      drm/i915: Correct the docs for intel_engine_cmd_parser
      drm/i915: Call i915_globals_exit() after i915_pmu_exit()
      drm/i915: Call i915_globals_exit() if pci_register_device() fails
      drm/i915: Use a table for i915_init/exit (v2)
      drm/i915: Make the kmem slab for i915_buddy_block a global
      drm/i915/gem: Check object_can_migrate from object_migrate
      drm/i915/gem: Refactor placement setup for i915_gem_object_create* (v2)
      drm/i915/gem: Call i915_gem_flush_free_objects() in i915_gem_dumb_create()
      drm/i915/gem: Unify user object creation (v3)
      drm/i915/gem/ttm: Only call __i915_gem_object_set_pages if needed
      drm/i915/gem: Always call obj->ops->migrate unless can_migrate fails

John Harrison (19):
      drm/i915/huc: Update TGL and friends to HuC 7.9.3
      drm/i915/adlp: Add ADL-P GuC/HuC firmware files
      drm/i915/guc: Module load failure test for CT buffer creation
      drm/i915/selftests: Allow for larger engine counts
      drm/i915/xehp: Extra media engines - Part 1 (engine definitions)
      drm/i915/xehp: Extra media engines - Part 2 (interrupts)
      drm/i915/xehp: Extra media engines - Part 3 (reset)
      drm/i915/guc: Make hangcheck work with GuC virtual engines
      drm/i915/guc: Provide mmio list to be saved/restored on engine reset
      drm/i915/guc: Don't complain about reset races
      drm/i915/guc: Enable GuC engine reset
      drm/i915/guc: Fix for error capture after full GPU reset with GuC
      drm/i915/guc: Hook GuC scheduling policies up
      drm/i915/guc: Connect reset modparam updates to GuC policy flags
      drm/i915/guc: Include scheduling policies in the debugfs state dump
      drm/i915/guc: Add golden context to GuC ADS
      drm/i915/selftest: Better error reporting from hangcheck selftest
      drm/i915/selftest: Fix hangcheck self test for GuC submission
      drm/i915/selftest: Bump selftest timeouts for hangcheck

Joonas Lahtinen (1):
      Merge tag 'topic/i915-ttm-2021-06-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-intel-gt-next

José Roberto de Souza (4):
      drm/i915: Settle on "adl-x" in WA comments
      drm/i915: Implement Wa_1508744258
      drm/i915/adl_s: Extend Wa_1406941453
      drm/i915: Extend Wa_1406941453 to adl-p

Lucas De Marchi (14):
      drm/i915/gt: finish INTEL_GEN and friends conversion
      drm/i915: do not abbreviate version in debugfs
      drm/i915: Add release id version
      drm/i915: Add XE_HP initial definitions
      drm/i915/xehpsdv: add initial XeHP SDV definitions
      drm/i915/gt: fix platform prefix
      drm/i915/gt: nuke unused legacy engine hw_id
      drm/i915/gt: rename legacy engine->hw_id to engine->gen6_hw_id
      drm/i915/gt: nuke gen6_hw_id
      drm/i915/gt: remove explicit CNL handling from intel_mocs.c
      drm/i915/gt: remove explicit CNL handling from intel_sseu.c
      drm/i915/gt: rename CNL references in intel_engine.h
      drm/i915/gt: remove GRAPHICS_VER == 10
      drm/i915/xehp: Fix missing sentinel on mcr_ranges_xehp

Maarten Lankhorst (2):
      drm/i915: Fix missing docbook chapters for i915 uapi.
      drm/i915: Add TTM offset argument to mmap.

Matt Roper (29):
      drm/i915: Add GT support for multiple types of multicast steering
      drm/i915: Add support for explicit L3BANK steering
      drm/i915: Make pre-production detection use direct revid comparison
      drm/i915/skl: Use revid->stepping tables
      drm/i915/kbl: Drop pre-production revision from stepping table
      drm/i915/bxt: Use revid->stepping tables
      drm/i915/glk: Use revid->stepping tables
      drm/i915/icl: Use revid->stepping tables
      drm/i915/jsl_ehl: Use revid->stepping tables
      drm/i915/rkl: Use revid->stepping tables
      drm/i915/dg1: Use revid->stepping tables
      drm/i915/cnl: Drop all workarounds
      drm/i915/icl: Drop workarounds that only apply to pre-production steppings
      Merge branch 'topic/revid_steppings' into drm-intel-gt-next
      drm/i915: Fix application of WaInPlaceDecompressionHang
      drm/i915/icl: Drop a couple unnecessary workarounds
      drm/i915: Program DFR enable/disable as a GT workaround
      drm/i915: Make GT workaround upper bounds exclusive
      drm/i915/dg2: add DG2 platform info
      Merge branch 'topic/xehp-dg2-definitions-2021-07-21' into drm-intel-gt-next
      drm/i915/xehp: Define multicast register ranges
      drm/i915/xehp: Xe_HP forcewake support
      drm/i915/xehpsdv: Correct parameters for IS_XEHPSDV_GT_STEP()
      drm/i915/dg2: Add forcewake table
      drm/i915/xehpsdv: Add maximum sseu limits
      drm/i915/dg2: DG2 uses the same sseu limits as XeHP SDV
      drm/i915/xehpsdv: Define steering tables
      drm/i915/dg2: Update steering tables
      drm/i915/dg2: Add SQIDI steering

Matthew Auld (25):
      drm/i915/ttm: add ttm_buddy_man
      drm/i915/ttm: add i915_sg_from_buddy_resource
      drm/i915/ttm: pass along the I915_BO_ALLOC_CONTIGUOUS
      drm/i915/ttm: remove node usage in our naming
      drm/i915/ttm: switch over to ttm_buddy_man
      drm/i915/ttm: restore min_page_size behaviour
      drm/i915/ttm: remove unused function
      drm/i915/selftests: add back the selftest() hook for the buddy
      drm/i915/ttm: fix static warning
      drm/i915/gem: Introduce a selftest for the gem object migrate functionality
      drm/i915: support forcing the page size with lmem
      drm/i915/gtt: ignore min_page_size for paging structures
      drm/i915/selftests: fix smatch warning in igt_check_blocks
      drm/i915/selftests: fix smatch warning in mock_reserve
      drm/i915: use consistent CPU mappings for pin_map users
      drm/i915/uapi: convert drm_i915_gem_caching to kernel doc
      drm/i915/uapi: convert drm_i915_gem_set_domain to kernel doc
      drm/i915/gtt: drop the page table optimisation
      drm/i915/uapi: reject caching ioctls for discrete
      drm/i915/uapi: convert drm_i915_gem_userptr to kernel doc
      drm/i915/uapi: reject set_domain for discrete
      drm/i915: document caching related bits
      drm/i915/ehl: unconditionally flush the pages on acquire
      drm/i915/selftests: prefer the create_user helper
      drm/i915/xehp: Changes to ss/eu definitions

Matthew Brost (52):
      drm/i915: Move priolist to new i915_sched_engine object
      drm/i915: Add i915_sched_engine_is_empty function
      drm/i915: Reset sched_engine.no_priolist immediately after dequeue
      drm/i915: Move active tracking to i915_sched_engine
      drm/i915: Move engine->schedule to i915_sched_engine
      drm/i915: Add kick_backend function to i915_sched_engine
      drm/i915: Update i915_scheduler to operate on i915_sched_engine
      drm/i915: Move submission tasklet to i915_sched_engine
      drm/doc/rfc: i915 GuC submission / DRM scheduler
      drm/doc/rfc: i915 new parallel submission uAPI plan
      drm/i915/guc: Relax CTB response timeout
      drm/i915/guc: Improve error message for unsolicited CT response
      drm/i915/guc: Increase size of CTB buffers
      drm/i915/guc: Add non blocking CTB send function
      drm/i915/guc: Add stall timer to non blocking CTB send function
      drm/i915/guc: Optimize CTB writes and reads
      drm/i915/guc: Add new GuC interface defines and structures
      drm/i915/guc: Remove GuC stage descriptor, add LRC descriptor
      drm/i915/guc: Add LRC descriptor context lookup array
      drm/i915/guc: Implement GuC submission tasklet
      drm/i915/guc: Add bypass tasklet submission path to GuC
      drm/i915/guc: Implement GuC context operations for new inteface
      drm/i915/guc: Insert fence on context when deregistering
      drm/i915/guc: Defer context unpin until scheduling is disabled
      drm/i915/guc: Disable engine barriers with GuC during unpin
      drm/i915/guc: Extend deregistration fence to schedule disable
      drm/i915: Disable preempt busywait when using GuC scheduling
      drm/i915/guc: Ensure request ordering via completion fences
      drm/i915/guc: Disable semaphores when using GuC scheduling
      drm/i915/guc: Ensure G2H response has space in buffer
      drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC
      drm/i915/guc: Update GuC debugfs to support new GuC
      drm/i915/guc: Add trace point for GuC submit
      drm/i915: Add intel_context tracing
      drm/i915/guc: GuC virtual engines
      drm/i915: Hold reference to intel_context over life of i915_request
      drm/i915/guc: Disable bonding extension with GuC submission
      drm/i915/guc: Direct all breadcrumbs for a class to single breadcrumbs
      drm/i915: Add i915_sched_engine destroy vfunc
      drm/i915: Move active request tracking to a vfunc
      drm/i915/guc: Reset implementation for new GuC interface
      drm/i915: Reset GPU immediately if submission is disabled
      drm/i915/guc: Add disable interrupts to guc sanitize
      drm/i915/guc: Suspend/resume implementation for new interface
      drm/i915/guc: Handle context reset notification
      drm/i915/guc: Handle engine reset failure notification
      drm/i915/guc: Enable the timer expired interrupt for GuC
      drm/i915/guc: Capture error state on context reset
      drm/i915/guc: Implement banned contexts for GuC submission
      drm/i915/guc: Support request cancellation
      drm/i915/selftest: Increase some timeouts in live_requests
      drm/i915/guc: Implement GuC priority management

Michal Wajdeczko (3):
      drm/i915/guc: Introduce unified HXG messages
      drm/i915/guc: Update firmware to v62.0.0
      drm/i915/doc: Include GuC ABI documentation

Prathap Kumar Valsan (1):
      drm/i915/xehp: New engine context offsets

Rahul Kumar Singh (2):
      drm/i915/selftest: Fix workarounds selftest for GuC submission
      drm/i915/selftest: Fix MOCS selftest for GuC submission

Ramalingam C (1):
      drm/i915/ttm: accelerated move implementation

Rodrigo Vivi (1):
      Merge drm/drm-next into drm-intel-gt-next

Stuart Summers (1):
      drm/i915/xehp: Handle new device context ID format

Tejas Upadhyay (2):
      drm/i915/selftest: Extend ctx_timestamp ICL workaround to GEN11
      drm/i915/adl_s: Fix dma_mask_size to 39 bit

Thomas Hellström (18):
      drm/i915: Simplify userptr locking
      drm/i915/ttm: Fix memory leaks
      drm/i915/ttm: Calculate the object placement at get_pages time
      drm/i915: Reference objects on the ww object list
      drm/i915: Break out dma_resv ww locking utilities to separate files
      drm/i915: Introduce a ww transaction helper
      drm/i915/gem: Zap the client blt code
      drm/i915/gem: Zap the i915_gem_object_blt code
      drm/i915: Perform execbuffer object locking as a separate step
      drm/i915/ttm: Fix incorrect assumptions about ttm_bo_validate() semantics
      drm/i915: Update object placement flags to be mutable
      drm/i915/ttm: Adjust gem flags and caching settings after a move
      drm/i915/ttm: Use TTM for system memory
      drm/i915: Reinstate the mmap ioctl for some platforms
      drm/i915/gem: Implement object migration
      drm/i915/display: Migrate objects to LMEM if possible for display
      drm/i915/gem: Correct the locking and pin pattern for dma-buf (v8)
      drm/i915/gem: Migrate to system at dma-buf attach time (v7)

Thomas Zimmermann (2):
      drm/i915: Use the correct IRQ during resume
      drm/i915: Drop all references to DRM IRQ midlayer

Tvrtko Ursulin (3):
      drm/i915: Fix busy ioctl commentary
      drm/i915: Document the Virtual Engine uAPI
      drm/i915/xehp: VDBOX/VEBOX fusing registers are enable-based

Venkata Sandeep Dhanalakota (1):
      drm/i915/gen12: Use fuse info to enable SFC

Ville Syrjälä (1):
      drm/i915/gt: Fix -EDEADLK handling regression

Vinay Belgaumkar (14):
      drm/i915/guc/slpc: Initial definitions for SLPC
      drm/i915/guc/slpc: Gate Host RPS when SLPC is enabled
      drm/i915/guc/slpc: Adding SLPC communication interfaces
      drm/i915/guc/slpc: Allocate, initialize and release SLPC
      drm/i915/guc/slpc: Enable SLPC and add related H2G events
      drm/i915/guc/slpc: Remove BUG_ON in guc_submission_disable
      drm/i915/guc/slpc: Add methods to set min/max frequency
      drm/i915/guc/slpc: Add get max/min freq hooks
      drm/i915/guc/slpc: Add debugfs for SLPC info
      drm/i915/guc/slpc: Enable ARAT timer interrupt
      drm/i915/guc/slpc: Cache platform frequency limits
      drm/i915/guc/slpc: Sysfs hooks for SLPC
      drm/i915/guc/slpc: Add SLPC selftest
      drm/i915/guc/rc: Setup and enable GuCRC feature

Wan Jiabing (1):
      drm/i915: Remove duplicate include of intel_region_lmem.h

 Documentation/gpu/i915.rst                         |   15 +
 Documentation/gpu/rfc/i915_parallel_execbuf.h      |  122 +
 Documentation/gpu/rfc/i915_scheduler.rst           |  148 +
 Documentation/gpu/rfc/index.rst                    |    4 +
 drivers/gpu/drm/drm_gem.c                          |    9 -
 drivers/gpu/drm/i915/Kconfig.debug                 |    6 +
 drivers/gpu/drm/i915/Makefile                      |   14 +-
 drivers/gpu/drm/i915/display/intel_display.c       |    5 +-
 drivers/gpu/drm/i915/display/intel_display_power.c |    2 +-
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c      |    6 +-
 drivers/gpu/drm/i915/display/intel_psr.c           |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_clflush.c        |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |  355 ---
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.h     |   21 -
 drivers/gpu/drm/i915/gem/i915_gem_context.c        | 2920 +++++++++-----------
 drivers/gpu/drm/i915/gem/i915_gem_context.h        |    6 +
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |  196 +-
 drivers/gpu/drm/i915/gem/i915_gem_create.c         |  188 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   58 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   11 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  699 +----
 drivers/gpu/drm/i915/gem/i915_gem_internal.c       |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  160 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   12 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  107 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  350 ++-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   69 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |  461 ---
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.h     |   39 -
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  255 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   54 +-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |   23 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.h         |    1 +
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   30 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |    3 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |  965 +++++++
 drivers/gpu/drm/i915/gem/i915_gem_ttm.h            |   49 +
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |  117 +-
 drivers/gpu/drm/i915/gem/i915_gem_wait.c           |   23 +-
 .../gpu/drm/i915/gem/selftests/huge_gem_object.c   |    4 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |    8 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |  114 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  127 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c   |  190 +-
 .../drm/i915/gem/selftests/i915_gem_execbuffer.c   |    4 +
 .../gpu/drm/i915/gem/selftests/i915_gem_migrate.c  |  243 ++
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  164 +-
 .../drm/i915/gem/selftests/i915_gem_object_blt.c   |  597 ----
 drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c |    3 +-
 drivers/gpu/drm/i915/gem/selftests/mock_context.c  |   67 +-
 drivers/gpu/drm/i915/gem/selftests/mock_context.h  |    4 +-
 drivers/gpu/drm/i915/gt/debugfs_gt_pm.c            |   10 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |   17 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   73 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |   44 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h        |   16 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |    7 +
 drivers/gpu/drm/i915/gt/intel_context.c            |   88 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   56 +-
 drivers/gpu/drm/i915/gt/intel_context_param.c      |   63 -
 drivers/gpu/drm/i915/gt/intel_context_param.h      |    6 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   64 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   87 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  420 +--
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |   74 +-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h   |    4 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |    4 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   93 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |    6 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  604 ++--
 .../gpu/drm/i915/gt/intel_execlists_submission.h   |   12 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |    6 +-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |    2 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |    2 +
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  197 +-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   10 +
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |   10 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   13 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   11 +-
 drivers/gpu/drm/i915/gt/intel_gt_requests.c        |   21 +-
 drivers/gpu/drm/i915/gt/intel_gt_requests.h        |    9 +-
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   37 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   20 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   18 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  117 +-
 drivers/gpu/drm/i915/gt/intel_lrc_reg.h            |    3 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |  688 +++++
 drivers/gpu/drm/i915/gt/intel_migrate.h            |   65 +
 drivers/gpu/drm/i915/gt/intel_migrate_types.h      |   15 +
 drivers/gpu/drm/i915/gt/intel_mocs.c               |    2 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |   49 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |    7 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.h        |    1 +
 drivers/gpu/drm/i915/gt/intel_reset.c              |   56 +-
 drivers/gpu/drm/i915/gt/intel_ring.h               |    1 +
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   70 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  209 +-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   10 +
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  126 +-
 drivers/gpu/drm/i915/gt/intel_sseu.h               |   10 +-
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |    8 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  498 ++--
 drivers/gpu/drm/i915/gt/intel_workarounds_types.h  |    1 +
 drivers/gpu/drm/i915/gt/mock_engine.c              |   51 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |   10 +
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   22 +
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.h    |    2 +
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |    4 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  307 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  330 ++-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |    6 +-
 drivers/gpu/drm/i915/gt/selftest_migrate.c         |  669 +++++
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |   52 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           |    2 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            |  311 +++
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |    2 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |  162 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |  129 +-
 .../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h  |  235 ++
 .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h |  127 +-
 .../i915/gt/uc/abi/guc_communication_mmio_abi.h    |   65 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h  |  213 ++
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  206 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |  119 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  487 +++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h         |    4 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |  703 +++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h          |   36 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c     |   47 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  167 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c         |   29 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.h         |    6 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c          |   80 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h          |   31 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |  626 +++++
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h        |   42 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h  |   29 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  | 2895 +++++++++++++++++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   18 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  126 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.h              |   15 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |   27 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |    7 +-
 drivers/gpu/drm/i915/i915_active.c                 |   37 +-
 drivers/gpu/drm/i915/i915_active.h                 |    3 +
 drivers/gpu/drm/i915/i915_buddy.c                  |  421 +++
 drivers/gpu/drm/i915/i915_buddy.h                  |  135 +
 drivers/gpu/drm/i915/i915_cmd_parser.c             |  203 +-
 drivers/gpu/drm/i915/i915_debugfs_params.c         |   32 +
 drivers/gpu/drm/i915/i915_drv.c                    |    9 +-
 drivers/gpu/drm/i915/i915_drv.h                    |  228 +-
 drivers/gpu/drm/i915/i915_gem.c                    |   63 +-
 drivers/gpu/drm/i915/i915_gem.h                    |   12 -
 drivers/gpu/drm/i915/i915_gem_evict.c              |    1 +
 drivers/gpu/drm/i915/i915_gem_ww.c                 |   63 +
 drivers/gpu/drm/i915/i915_gem_ww.h                 |   50 +
 drivers/gpu/drm/i915/i915_getparam.c               |    7 +-
 drivers/gpu/drm/i915/i915_globals.c                |  160 --
 drivers/gpu/drm/i915/i915_globals.h                |   37 -
 drivers/gpu/drm/i915/i915_gpu_error.c              |   27 +-
 drivers/gpu/drm/i915/i915_module.c                 |  113 +
 drivers/gpu/drm/i915/i915_pci.c                    |  129 +-
 drivers/gpu/drm/i915/i915_pci.h                    |    8 +
 drivers/gpu/drm/i915/i915_perf.c                   |   36 +-
 drivers/gpu/drm/i915/i915_perf.h                   |    2 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |    6 +-
 drivers/gpu/drm/i915/i915_pmu.h                    |    4 +-
 drivers/gpu/drm/i915/i915_reg.h                    |   48 +-
 drivers/gpu/drm/i915/i915_request.c                |  307 +-
 drivers/gpu/drm/i915/i915_request.h                |   38 +-
 drivers/gpu/drm/i915/i915_scatterlist.c            |   80 +
 drivers/gpu/drm/i915/i915_scatterlist.h            |    5 +
 drivers/gpu/drm/i915/i915_scheduler.c              |  220 +-
 drivers/gpu/drm/i915/i915_scheduler.h              |   54 +-
 drivers/gpu/drm/i915/i915_scheduler_types.h        |  111 +
 drivers/gpu/drm/i915/i915_sw_fence_work.c          |    5 +-
 drivers/gpu/drm/i915/i915_sw_fence_work.h          |    2 +-
 drivers/gpu/drm/i915/i915_sysfs.c                  |   83 +-
 drivers/gpu/drm/i915/i915_trace.h                  |  201 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c      |  258 ++
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h      |   56 +
 drivers/gpu/drm/i915/i915_vma.c                    |   34 +-
 drivers/gpu/drm/i915/i915_vma.h                    |    3 +
 drivers/gpu/drm/i915/intel_device_info.c           |   16 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   12 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |   63 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |   30 +-
 drivers/gpu/drm/i915/intel_pm.c                    |   22 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |  150 +-
 drivers/gpu/drm/i915/intel_region_ttm.h            |   23 +-
 drivers/gpu/drm/i915/intel_step.c                  |  134 +-
 drivers/gpu/drm/i915/intel_step.h                  |    5 +
 drivers/gpu/drm/i915/intel_uncore.c                |  422 ++-
 drivers/gpu/drm/i915/intel_uncore.h                |   20 +-
 drivers/gpu/drm/i915/selftests/i915_buddy.c        |  787 ++++++
 .../gpu/drm/i915/selftests/i915_live_selftests.h   |    5 +-
 .../gpu/drm/i915/selftests/i915_mock_selftests.h   |    2 +-
 .../gpu/drm/i915/selftests/i915_perf_selftests.h   |    2 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |    4 +-
 drivers/gpu/drm/i915/selftests/i915_selftest.c     |    4 +-
 drivers/gpu/drm/i915/selftests/igt_flush_test.c    |    2 +-
 drivers/gpu/drm/i915/selftests/igt_live_test.c     |    2 +-
 drivers/gpu/drm/i915/selftests/igt_mmap.c          |   25 +-
 drivers/gpu/drm/i915/selftests/igt_mmap.h          |   12 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  257 +-
 .../drm/i915/selftests/intel_scheduler_helpers.c   |   88 +
 .../drm/i915/selftests/intel_scheduler_helpers.h   |   33 +
 drivers/gpu/drm/i915/selftests/intel_uncore.c      |    2 +
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |    3 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c          |    1 -
 drivers/gpu/drm/i915/selftests/mock_region.c       |   29 +-
 include/drm/drm_vma_manager.h                      |    2 +-
 include/uapi/drm/i915_drm.h                        |  498 +++-
 214 files changed, 18965 insertions(+), 8462 deletions(-)
 create mode 100644 Documentation/gpu/rfc/i915_parallel_execbuf.h
 create mode 100644 Documentation/gpu/rfc/i915_scheduler.rst
 delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c
 delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_client_blt.h
 delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c
 delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_object_blt.h
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm.c
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm.h
 create mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_migrate.c
 delete mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_object_blt.c
 delete mode 100644 drivers/gpu/drm/i915/gt/intel_context_param.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_migrate.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_migrate.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_migrate_types.h
 create mode 100644 drivers/gpu/drm/i915/gt/selftest_migrate.c
 create mode 100644 drivers/gpu/drm/i915/gt/selftest_slpc.c
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
 create mode 100644 drivers/gpu/drm/i915/i915_buddy.c
 create mode 100644 drivers/gpu/drm/i915/i915_buddy.h
 create mode 100644 drivers/gpu/drm/i915/i915_gem_ww.c
 create mode 100644 drivers/gpu/drm/i915/i915_gem_ww.h
 delete mode 100644 drivers/gpu/drm/i915/i915_globals.c
 delete mode 100644 drivers/gpu/drm/i915/i915_globals.h
 create mode 100644 drivers/gpu/drm/i915/i915_module.c
 create mode 100644 drivers/gpu/drm/i915/i915_pci.h
 create mode 100644 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
 create mode 100644 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
 create mode 100644 drivers/gpu/drm/i915/selftests/i915_buddy.c
 create mode 100644 drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c
 create mode 100644 drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.h

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-06-10  9:40 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-06-10  9:40 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Here's the final -gt-next PR for 5.14.

Two major uAPI changes for new Gen12+ platforms: Stop supporting
old MMAP IOCTL (excl. TGL) and require use of MMAP_OFFSET instead.
Start enabling HuC loading by default (excl. TGL and RKL).

Revert for io_mapping_map_user which was already in -fixes.

Enabling of the TTM device and memory managers for handling LMEM
on dGFX (currently replaces the buddy allocator). Note that this
only impacts the platforms behind force probe protection.

A lot of improvments to the GuC submission backend to prepare for
enabling on newer platforms.

Only a couple other reworks and fixes.

Regards, Joonas

***

drm-intel-gt-next-2021-06-10:

UAPI Changes:

- Disable mmap ioctl for gen12+ (excl. TGL-LP)
- Start enabling HuC loading by default for upcoming Gen12+
  platforms (excludes TGL and RKL)

Core Changes:

- Backmerge of drm-next

Driver Changes:

- Revert "i915: use io_mapping_map_user" (Eero, Matt A)
- Initialize the TTM device and memory managers (Thomas)
- Major rework to the GuC submission backend to prepare
  for enabling on new platforms (Michal Wa., Daniele,
  Matt B, Rodrigo)
- Fix i915_sg_page_sizes to record dma segments rather
  than physical pages (Thomas)

- Locking rework to prep for TTM conversion (Thomas)
- Replace IS_GEN and friends with GRAPHICS_VER (Lucas)
- Use DEVICE_ATTR_RO macro (Yue)
- Static code checker fixes (Zhihao)

The following changes since commit ccd1950c2f7e38ae45aeefb99a08b39407cd6c63:

  Merge tag 'drm-intel-gt-next-2021-05-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2021-06-02 14:15:54 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-06-10

for you to fetch changes up to 47c65b3853f88d105017ef512a521794db51bfeb:

  drm/i915/uc: Use platform specific defaults for GuC/HuC enabling (2021-06-09 10:52:03 -0700)

----------------------------------------------------------------
UAPI Changes:

- Disable mmap ioctl for gen12+ (excl. TGL-LP)
- Start enabling HuC loading by default for upcoming Gen12+
  platforms (excludes TGL and RKL)

Core Changes:

- Backmerge of drm-next

Driver Changes:

- Revert "i915: use io_mapping_map_user" (Eero, Matt A)
- Initialize the TTM device and memory managers (Thomas)
- Major rework to the GuC submission backend to prepare
  for enabling on new platforms (Michal Wa., Daniele,
  Matt B, Rodrigo)
- Fix i915_sg_page_sizes to record dma segments rather
  than physical pages (Thomas)

- Locking rework to prep for TTM conversion (Thomas)
- Replace IS_GEN and friends with GRAPHICS_VER (Lucas)
- Use DEVICE_ATTR_RO macro (Yue)
- Static code checker fixes (Zhihao)

----------------------------------------------------------------
Daniele Ceraolo Spurio (4):
      drm/i915/guc: skip disabling CTBs before sanitizing the GuC
      drm/i915/guc: use probe_error log for CT enablement failure
      drm/i915/guc: enable only the user interrupt when using GuC submission
      drm/i915/guc: Use guc_class instead of engine_class in fw interface

John Harrison (1):
      drm/i915/uc: Use platform specific defaults for GuC/HuC enabling

Joonas Lahtinen (1):
      Merge drm/drm-next into drm-intel-gt-next

Lucas De Marchi (3):
      drm/i915/gt: replace IS_GEN and friends with GRAPHICS_VER
      drm/i915/gt: Add remaining conversions to GRAPHICS_VER
      drm/i915/gem: replace IS_GEN and friends with GRAPHICS_VER

Maarten Lankhorst (1):
      drm/i915: Disable mmap ioctl for gen12+

Matthew Auld (1):
      Revert "i915: use io_mapping_map_user"

Matthew Brost (2):
      drm/i915/guc: Drop guc->interrupts.enabled
      drm/i915/guc: Ensure H2G buffer updates visible before tail update

Michal Wajdeczko (12):
      drm/i915/guc: Keep strict GuC ABI definitions
      drm/i915/guc: Stop using fence/status from CTB descriptor
      drm/i915: Promote ptrdiff() to i915_utils.h
      drm/i915/guc: Only rely on own CTB size
      drm/i915/guc: Don't repeat CTB layout calculations
      drm/i915/guc: Replace CTB array with explicit members
      drm/i915/guc: Update sizes of CTB buffers
      drm/i915/guc: Start protecting access to CTB descriptors
      drm/i915/guc: Stop using mutex while sending CTB messages
      drm/i915/guc: Don't receive all G2H messages in irq handler
      drm/i915/guc: Always copy CT message to new allocation
      drm/i915/guc: Early initialization of GuC send registers

Rodrigo Vivi (1):
      drm/i915/guc: Remove sample_forcewake h2g action

Thomas Hellström (5):
      drm/i915: Untangle the vma pages_mutex
      drm/i915: Don't free shared locks while shared
      drm/i915: Fix i915_sg_page_sizes to record dma segments rather than physical pages
      drm/i915/ttm Initialize the ttm device and memory managers
      drm/i915/ttm: Embed a ttm buffer object in the i915 gem object

YueHaibing (1):
      drm/i915: use DEVICE_ATTR_RO macro

Zhihao Cheng (1):
      drm/i915/selftests: Fix return value check in live_breadcrumbs_smoketest()

 drivers/gpu/drm/i915/Kconfig                       |   2 +-
 drivers/gpu/drm/i915/Makefile                      |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  10 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  59 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |  16 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  10 +
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |   8 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  22 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.c         | 120 ----
 drivers/gpu/drm/i915/gem/i915_gem_region.h         |   4 -
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  26 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   9 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |  12 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |   2 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |  10 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |   4 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  16 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  14 +-
 drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c |  10 +-
 drivers/gpu/drm/i915/gt/debugfs_gt_pm.c            |  40 +-
 drivers/gpu/drm/i915/gt/gen2_engine_cs.c           |   2 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |   2 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   2 +-
 drivers/gpu/drm/i915/gt/intel_context_sseu.c       |   2 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  60 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   4 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  18 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  37 +-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |  34 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  29 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |  12 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |  24 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_irq.c          |  10 +-
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  59 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  28 +-
 drivers/gpu/drm/i915/gt/intel_llc.c                |   6 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  46 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               |   8 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   8 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |  16 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |  27 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |   2 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |  14 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |  64 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  60 +-
 drivers/gpu/drm/i915/gt/intel_sseu.c               |  14 +-
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c       |   6 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  66 +-
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |   6 +-
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |   2 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |   4 +-
 drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   8 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   8 +-
 drivers/gpu/drm/i915/gt/selftest_llc.c             |   4 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   8 +-
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |   2 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |   4 +-
 drivers/gpu/drm/i915/gt/selftest_ring_submission.c |   6 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |  16 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   6 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |   8 +-
 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h   |  51 ++
 .../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h | 106 +++
 .../i915/gt/uc/abi/guc_communication_mmio_abi.h    |  52 ++
 drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h    |  14 +
 drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h  |  21 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  63 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   2 -
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |  22 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          | 532 ++++++++------
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h          |  14 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |   2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        | 233 +-----
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  37 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   2 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  14 +-
 drivers/gpu/drm/i915/i915_buddy.c                  | 435 ------------
 drivers/gpu/drm/i915/i915_buddy.h                  | 131 ----
 drivers/gpu/drm/i915/i915_drv.c                    |  13 +
 drivers/gpu/drm/i915/i915_drv.h                    |  11 +-
 drivers/gpu/drm/i915/i915_gem.c                    |   1 +
 drivers/gpu/drm/i915/i915_globals.c                |   1 -
 drivers/gpu/drm/i915/i915_globals.h                |   1 -
 drivers/gpu/drm/i915/i915_mm.c                     |  44 ++
 drivers/gpu/drm/i915/i915_params.c                 |   2 +-
 drivers/gpu/drm/i915/i915_params.h                 |   2 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |   8 +-
 drivers/gpu/drm/i915/i915_scatterlist.c            |  70 ++
 drivers/gpu/drm/i915/i915_scatterlist.h            |  20 +-
 drivers/gpu/drm/i915/i915_sysfs.c                  |  30 +-
 drivers/gpu/drm/i915/i915_utils.h                  |   5 +
 drivers/gpu/drm/i915/i915_vma.c                    |  29 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   5 -
 drivers/gpu/drm/i915/intel_memory_region.c         | 180 ++---
 drivers/gpu/drm/i915/intel_memory_region.h         |  44 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            | 220 ++++++
 drivers/gpu/drm/i915/intel_region_ttm.h            |  32 +
 drivers/gpu/drm/i915/selftests/i915_buddy.c        | 789 ---------------------
 .../gpu/drm/i915/selftests/i915_mock_selftests.h   |   1 -
 drivers/gpu/drm/i915/selftests/i915_request.c      |   4 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   | 133 ++--
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |  10 +
 drivers/gpu/drm/i915/selftests/mock_region.c       |  70 +-
 108 files changed, 1888 insertions(+), 2723 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h
 delete mode 100644 drivers/gpu/drm/i915/i915_buddy.c
 delete mode 100644 drivers/gpu/drm/i915/i915_buddy.h
 create mode 100644 drivers/gpu/drm/i915/intel_region_ttm.c
 create mode 100644 drivers/gpu/drm/i915/intel_region_ttm.h
 delete mode 100644 drivers/gpu/drm/i915/selftests/i915_buddy.c

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2021-06-02  4:17     ` Dave Airlie
@ 2021-06-02  4:30       ` Dave Airlie
  0 siblings, 0 replies; 37+ messages in thread
From: Dave Airlie @ 2021-06-02  4:30 UTC (permalink / raw)
  To: Joonas Lahtinen
  Cc: DRM maintainer tools announcements, discussion, and development,
	Daniel Vetter, dri-devel, Rodrigo Vivi, Sean Paul,
	Intel Graphics Development

On Wed, 2 Jun 2021 at 14:17, Dave Airlie <airlied@gmail.com> wrote:
>
> On Wed, 2 Jun 2021 at 10:28, Dave Airlie <airlied@gmail.com> wrote:
> >
> > This has these two patches applied, and it doesn't build.
> >
> >   drm/i915: drop the __i915_active_call pointer packing
> >   drm/i915: Fix crash in auto_retire
> >
> > The latter patch shouldn't be necessary after the former, please fix
> > that up and resend and please build test trees before I get them in
> > future.
>
> Oh maybe this is an unresolved conflict, not sure why drm-tip doesn't
> catch this though, or is this next tree not in next?

Oh looks like tip did catch it, I just didn't see it was done with a fixup.

Dave.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2021-06-02  0:28   ` Dave Airlie
@ 2021-06-02  4:17     ` Dave Airlie
  2021-06-02  4:30       ` Dave Airlie
  0 siblings, 1 reply; 37+ messages in thread
From: Dave Airlie @ 2021-06-02  4:17 UTC (permalink / raw)
  To: Joonas Lahtinen
  Cc: DRM maintainer tools announcements, discussion, and development,
	Daniel Vetter, dri-devel, Rodrigo Vivi, Sean Paul,
	Intel Graphics Development

On Wed, 2 Jun 2021 at 10:28, Dave Airlie <airlied@gmail.com> wrote:
>
> This has these two patches applied, and it doesn't build.
>
>   drm/i915: drop the __i915_active_call pointer packing
>   drm/i915: Fix crash in auto_retire
>
> The latter patch shouldn't be necessary after the former, please fix
> that up and resend and please build test trees before I get them in
> future.

Oh maybe this is an unresolved conflict, not sure why drm-tip doesn't
catch this though, or is this next tree not in next?

That would explain it then.

I've pulled it with an fix in the merge commit.

Dave.

>
> Dave.
>
>
> On Fri, 28 May 2021 at 17:27, Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com> wrote:
> >
> > Quoting Joonas Lahtinen (2021-05-28 10:25:57)
> > > Hi Dave & Daniel,
> > >
> > > Here's drm-intel-gt-next pull request.
> > >
> > > Most notably it has the reworked DG1 uAPI (behind CONFIG_BROKEN)
> > > as requested. Important fix for Gitlab issues #3293 and #3450 and
> > > one another kernel crash. Adds missing workarounds for Gen11 and
> > > Gen12. Hiding of modparams for compiled-out features. Conversion
> > > to use trylock shrinking for BSW VT-d and BXT.
> > >
> > > Then there are the uAPI kerneldoc improvements as part of the DG1
> > > uAPI rework. Usual amount smaller fixes, code refactoring and
> > > cleanups as prep for upcoming patches.
> >
> > And includes tag 'topic/intel-gen-to-ver-2021-04-19' (but that is
> > already merged to drm-next).
> >
> > Regards, Joonas
> >
> > > Regards, Joonas
> > >
> > > ***
> > >
> > > drm-intel-gt-next-2021-05-28:
> > >
> > > UAPI Changes:
> > > - Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)
> > >
> > > Driver Changes:
> > >
> > > - Fix for Gitlab issues #3293 and #3450:
> > >   Avoid kernel crash on older L-shape memory machines
> > >
> > > - Hide modparams for compiled-out features (Tvrtko)
> > > - Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
> > > - Fix crash in auto_retire active retire callback due to
> > >   misalignment (Stephane)
> > > - Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
> > > - Fix overlay active retire callback alignment (Tvrtko)
> > > - Eliminate need to align active retire callbacks (Matt A, Ville,
> > >   Daniel)
> > > - Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
> > > - Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
> > > - Create stolen memory region from local memory on DG1 (CQ)
> > > - Place PD in LMEM on dGFX (Matt A)
> > > - Use WC when default state object is allocated in LMEM (Venkata)
> > > - Determine the coherent map type based on object location (Venkata)
> > > - Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
> > > - Bypass aperture on fbdev when LMEM is available (Anusha)
> > > - Return error value when displayable BO not in LMEM for dGFX (Mohammed)
> > > - Do release kernel context if breadcrumb measure fails (Janusz)
> > > - Apply Wa_22010271021 for all Gen11 platforms (Caz)
> > > - Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
> > > - Check actual RC6 enable status in PMU (Tvrtko)
> > > - Fix a double free in gen8_preallocate_top_level_pdp (Lv)
> > > - Remove erroneous i915_is_ggtt check for
> > >   I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)
> > >
> > > - Convert uAPI headers to real kerneldoc (Matt A)
> > > - Clean up kerneldoc warnings headers (Matt A, Maarten)
> > > - Fail driver if LMEM training failed (Matt R)
> > > - Avoid div-by-zero on Gen2 (Ville)
> > > - Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
> > > - Remove reference to struct drm_device.pdev (Thomas)
> > > - Increase separation between GuC and execlists code (Chris, Matt B)
> > >
> > > - Use might_alloc() (Bernard)
> > > - Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
> > > - Deduplicate Wa_22010271021 programming on (Jose)
> > > - Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
> > > - Selftest improvements (Chris, Hsin-Yi, Tvrtko)
> > > - Shuffle around init_memory_region for stolen (Matt)
> > > - Typo fixes (wengjianfeng)
> > >
> > > The following changes since commit 425390c5dce6da76578389629d19517fcd79c959:
> > >
> > >   drm/i915: split dgfx features from gen 12 (2021-04-14 13:05:06 +0300)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-05-28
> > >
> > > for you to fetch changes up to 5b26d57fdb499c2363f3d895ef008e73ec02eb9b:
> > >
> > >   drm/i915: Add Wa_14010733141 (2021-05-27 11:05:09 -0700)
> > >
> > > ----------------------------------------------------------------
> > > UAPI Changes:
> > > - Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)
> > >
> > > Driver Changes:
> > >
> > > - Fix for Gitlab issues #3293 and #3450:
> > >   Avoid kernel crash on older L-shape memory machines
> > >
> > > - Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
> > > - Fix crash in auto_retire active retire callback due to
> > >   misalignment (Stephane)
> > > - Fix overlay active retire callback alignment (Tvrtko)
> > > - Eliminate need to align active retire callbacks (Matt A, Ville,
> > >   Daniel)
> > > - Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
> > > - Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
> > > - Create stolen memory region from local memory on DG1 (CQ)
> > > - Place PD in LMEM on dGFX (Matt A)
> > > - Use WC when default state object is allocated in LMEM (Venkata)
> > > - Determine the coherent map type based on object location (Venkata)
> > > - Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
> > > - Bypass aperture on fbdev when LMEM is available (Anusha)
> > > - Return error value when displayable BO not in LMEM for dGFX (Mohammed)
> > > - Do release kernel context if breadcrumb measure fails (Janusz)
> > > - Hide modparams for compiled-out features (Tvrtko)
> > > - Apply Wa_22010271021 for all Gen11 platforms (Caz)
> > > - Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
> > > - Check actual RC6 enable status in PMU (Tvrtko)
> > > - Fix a double free in gen8_preallocate_top_level_pdp (Lv)
> > > - Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
> > > - Remove erroneous i915_is_ggtt check for
> > >   I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)
> > >
> > > - Convert uAPI headers to real kerneldoc (Matt A)
> > > - Clean up kerneldoc warnings headers (Matt A, Maarten)
> > > - Fail driver if LMEM training failed (Matt R)
> > > - Avoid div-by-zero on Gen2 (Ville)
> > > - Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
> > > - Remove reference to struct drm_device.pdev (Thomas)
> > > - Increase separation between GuC and execlists code (Chris, Matt B)
> > >
> > > - Use might_alloc() (Bernard)
> > > - Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
> > > - Deduplicate Wa_22010271021 programming on (Jose)
> > > - Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
> > > - Selftest improvements (Chris, Hsin-Yi, Tvrtko)
> > > - Shuffle around init_memory_region for stolen (Matt)
> > > - Typo fixes (wengjianfeng)
> > >
> > > ----------------------------------------------------------------
> > > Abdiel Janulgue (1):
> > >       drm/i915/query: Expose memory regions through the query uAPI
> > >
> > > Aditya Swarup (1):
> > >       drm/i915: Add Wa_14010733141
> > >
> > > Anusha Srivatsa (1):
> > >       drm/i915/lmem: Bypass aperture when lmem is available
> > >
> > > Bernard Zhao (1):
> > >       drm/i915: Use might_alloc()
> > >
> > > CQ Tang (2):
> > >       drm/i915: Create stolen memory region from local memory
> > >       drm/i915/stolen: enforce the min_page_size contract
> > >
> > > Caz Yokoyama (2):
> > >       drm/i915/gen12: Add recommended hardware tuning value
> > >       drm/i915/icl: add Wa_22010271021 for all gen11
> > >
> > > Chris Wilson (6):
> > >       drm/i915/selftests: Skip aperture remapping selftest where there is no aperture
> > >       drm/i915/selftests: Only query RAPL for integrated power measurements
> > >       drm/i915/gem: Pin the L-shape quirked object as unshrinkable
> > >       drm/i915/gt: Move engine setup out of set_default_submission
> > >       drm/i915/gt: Move submission_method into intel_gt
> > >       drm/i915/gt: Move CS interrupt handler to the backend
> > >
> > > Hsin-Yi Wang (1):
> > >       drm/i915/selftests: Rename pm_ prefixed functions names
> > >
> > > Janusz Krzysztofik (1):
> > >       drm/i915/gt: Do release kernel context if breadcrumb measure fails
> > >
> > > Joonas Lahtinen (1):
> > >       Merge tag 'topic/intel-gen-to-ver-2021-04-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next
> > >
> > > José Roberto de Souza (1):
> > >       drm/i915: Move Wa_16011163337 to gen12_ctx_workarounds_init()
> > >
> > > Lv Yunlong (1):
> > >       drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp
> > >
> > > Maarten Lankhorst (4):
> > >       drm/i915: Fix docbook descriptions for i915_gem_shrinker
> > >       drm/i915: Fix docbook descriptions for i915_cmd_parser
> > >       drm/i915: Use trylock in shrinker for ggtt on bsw vt-d and bxt, v2.
> > >       drm/i915: Remove erroneous i915_is_ggtt check for I915_GEM_OBJECT_UNBIND_VM_TRYLOCK
> > >
> > > Matt Roper (1):
> > >       drm/i915/lmem: Fail driver init if LMEM training failed
> > >
> > > Matthew Auld (19):
> > >       drm/i915/uapi: fix kernel doc warnings
> > >       drm/i915/uapi: convert i915_user_extension to kernel doc
> > >       drm/i915/uapi: convert i915_query and friend to kernel doc
> > >       drm/doc: add section for driver uAPI
> > >       drm/i915/stolen: treat stolen local as normal local memory
> > >       drm/i915/stolen: actually mark as contiguous
> > >       drm/i915/gtt: map the PD up front
> > >       drm/i915/gtt/dgfx: place the PD in LMEM
> > >       drm/doc/rfc: i915 DG1 uAPI
> > >       drm/i915: mark stolen as private
> > >       drm/i915: rework gem_create flow for upcoming extensions
> > >       drm/i915/uapi: introduce drm_i915_gem_create_ext
> > >       drm/i915/uapi: implement object placement extension
> > >       drm/i915/lmem: support optional CPU clearing for special internal use
> > >       drm/i915/gem: clear userspace buffers for LMEM
> > >       drm/i915/gem: hide new uAPI behind CONFIG_BROKEN
> > >       drm/i915: drop the __i915_active_call pointer packing
> > >       drm/i915/stolen: shuffle around init_memory_region
> > >       drm/doc/rfc: drop the i915_gem_lmem.h header
> > >
> > > Mohammed Khajapasha (2):
> > >       drm/i915/fbdev: Use lmem physical addresses for fb_mmap() on discrete
> > >       drm/i915: Return error value when bo not in LMEM for discrete
> > >
> > > Stéphane Marchesin (1):
> > >       drm/i915: Fix crash in auto_retire
> > >
> > > Swathi Dhanavanthri (1):
> > >       drm/i915: Add Wa_14011060649
> > >
> > > Thomas Zimmermann (1):
> > >       drm/i915/gem: Remove reference to struct drm_device.pdev
> > >
> > > Tvrtko Ursulin (6):
> > >       drm/i915: Take request reference before arming the watchdog timer
> > >       drm/i915/pmu: Check actual RC6 status
> > >       drm/i915/overlay: Fix active retire callback alignment
> > >       drm/i915/selftests: Fix active retire callback alignment
> > >       drm/i915: Drop duplicate WaDisable4x2SubspanOptimization:hsw
> > >       drm/i915/params: Align visibility of device level and global modparams
> > >
> > > Venkata Ramana Nayana (1):
> > >       drm/i915/dg1: Fix mapping type for default state object
> > >
> > > Venkata Sandeep Dhanalakota (1):
> > >       drm/i915: Update the helper to set correct mapping
> > >
> > > Ville Syrjälä (3):
> > >       drm/i915: Avoid div-by-zero on gen2
> > >       drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
> > >       drm/i915: Give C0DRB3/C1DRB3 a _BW suffix
> > >
> > > wengjianfeng (1):
> > >       drm/i915/gt: fix typo issue
> > >
> > >  Documentation/gpu/driver-uapi.rst                  |   8 +
> > >  Documentation/gpu/index.rst                        |   1 +
> > >  Documentation/gpu/rfc/i915_gem_lmem.rst            | 131 +++++++
> > >  Documentation/gpu/rfc/index.rst                    |   4 +
> > >  drivers/gpu/drm/i915/display/intel_display.c       |  10 +
> > >  drivers/gpu/drm/i915/display/intel_fbdev.c         |  51 ++-
> > >  drivers/gpu/drm/i915/display/intel_frontbuffer.c   |   4 +-
> > >  drivers/gpu/drm/i915/display/intel_overlay.c       |   5 +-
> > >  drivers/gpu/drm/i915/gem/i915_gem_context.c        |   3 +-
> > >  drivers/gpu/drm/i915/gem/i915_gem_create.c         | 345 ++++++++++++++++--
> > >  drivers/gpu/drm/i915/gem/i915_gem_ioctls.h         |   2 +
> > >  drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  20 +-
> > >  drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   5 +
> > >  drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
> > >  drivers/gpu/drm/i915/gem/i915_gem_object.c         |   3 +
> > >  drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  14 +-
> > >  drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   2 +
> > >  drivers/gpu/drm/i915/gem/i915_gem_region.c         |  22 ++
> > >  drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  14 +-
> > >  drivers/gpu/drm/i915/gem/i915_gem_stolen.c         | 159 +++++++--
> > >  drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   3 +-
> > >  .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  11 +-
> > >  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  26 ++
> > >  drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  13 +-
> > >  drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  32 +-
> > >  drivers/gpu/drm/i915/gt/intel_context.c            |   3 +-
> > >  drivers/gpu/drm/i915/gt/intel_engine.h             |   8 +-
> > >  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  21 +-
> > >  drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   2 +-
> > >  drivers/gpu/drm/i915/gt/intel_engine_types.h       |  14 +-
> > >  .../gpu/drm/i915/gt/intel_execlists_submission.c   |  95 +++--
> > >  .../gpu/drm/i915/gt/intel_execlists_submission.h   |   3 -
> > >  drivers/gpu/drm/i915/gt/intel_ggtt.c               |  10 +-
> > >  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   6 +-
> > >  drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   3 +-
> > >  drivers/gpu/drm/i915/gt/intel_gt_irq.c             |  82 ++---
> > >  drivers/gpu/drm/i915/gt/intel_gt_irq.h             |  23 ++
> > >  drivers/gpu/drm/i915/gt/intel_gt_types.h           |   7 +
> > >  drivers/gpu/drm/i915/gt/intel_gtt.c                |  91 +++--
> > >  drivers/gpu/drm/i915/gt/intel_gtt.h                |  12 +-
> > >  drivers/gpu/drm/i915/gt/intel_lrc.c                |   4 +-
> > >  drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   7 +-
> > >  drivers/gpu/drm/i915/gt/intel_reset.c              | 201 +++++++----
> > >  drivers/gpu/drm/i915/gt/intel_ring.c               |  11 +-
> > >  drivers/gpu/drm/i915/gt/intel_ring_submission.c    |  12 +-
> > >  drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
> > >  drivers/gpu/drm/i915/gt/intel_timeline.c           |   4 +-
> > >  drivers/gpu/drm/i915/gt/intel_workarounds.c        | 100 ++++--
> > >  drivers/gpu/drm/i915/gt/mock_engine.c              |   2 +-
> > >  drivers/gpu/drm/i915/gt/selftest_context.c         |   3 +-
> > >  .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   2 +-
> > >  drivers/gpu/drm/i915/gt/selftest_execlists.c       |   2 +-
> > >  drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   4 +-
> > >  drivers/gpu/drm/i915/gt/selftest_lrc.c             |   4 +-
> > >  drivers/gpu/drm/i915/gt/selftest_rc6.c             |  32 +-
> > >  drivers/gpu/drm/i915/gt/selftest_ring_submission.c |   2 +-
> > >  drivers/gpu/drm/i915/gt/selftest_rps.c             |   6 +-
> > >  drivers/gpu/drm/i915/gt/shmem_utils.c              |   4 +-
> > >  drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   4 +-
> > >  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  64 ++--
> > >  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   1 -
> > >  drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   4 +-
> > >  drivers/gpu/drm/i915/i915_active.c                 |  11 +-
> > >  drivers/gpu/drm/i915/i915_active.h                 |  11 +-
> > >  drivers/gpu/drm/i915/i915_active_types.h           |   5 -
> > >  drivers/gpu/drm/i915/i915_cmd_parser.c             |  18 +-
> > >  drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
> > >  drivers/gpu/drm/i915/i915_drv.c                    |   1 +
> > >  drivers/gpu/drm/i915/i915_drv.h                    |  29 +-
> > >  drivers/gpu/drm/i915/i915_gem.c                    |  25 +-
> > >  drivers/gpu/drm/i915/i915_irq.c                    |  10 +-
> > >  drivers/gpu/drm/i915/i915_params.h                 |   8 +-
> > >  drivers/gpu/drm/i915/i915_pci.c                    |   2 +-
> > >  drivers/gpu/drm/i915/i915_perf.c                   |  10 +-
> > >  drivers/gpu/drm/i915/i915_pmu.c                    |   4 +-
> > >  drivers/gpu/drm/i915/i915_query.c                  |  62 ++++
> > >  drivers/gpu/drm/i915/i915_reg.h                    |  17 +-
> > >  drivers/gpu/drm/i915/i915_request.c                |   5 +-
> > >  drivers/gpu/drm/i915/i915_vma.c                    |  31 +-
> > >  drivers/gpu/drm/i915/intel_memory_region.c         |  29 +-
> > >  drivers/gpu/drm/i915/intel_memory_region.h         |  18 +-
> > >  drivers/gpu/drm/i915/intel_uncore.c                |  12 +
> > >  drivers/gpu/drm/i915/selftests/i915_active.c       |   2 +-
> > >  drivers/gpu/drm/i915/selftests/i915_gem.c          |  20 +-
> > >  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  10 +-
> > >  drivers/gpu/drm/i915/selftests/i915_perf.c         |   3 +-
> > >  drivers/gpu/drm/i915/selftests/i915_vma.c          |   3 +
> > >  drivers/gpu/drm/i915/selftests/igt_spinner.c       |   4 +-
> > >  .../gpu/drm/i915/selftests/intel_memory_region.c   |  87 ++++-
> > >  drivers/gpu/drm/i915/selftests/librapl.c           |  10 +
> > >  drivers/gpu/drm/i915/selftests/librapl.h           |   4 +
> > >  include/uapi/drm/i915_drm.h                        | 393 +++++++++++++++++++--
> > >  92 files changed, 2018 insertions(+), 575 deletions(-)
> > >  create mode 100644 Documentation/gpu/driver-uapi.rst
> > >  create mode 100644 Documentation/gpu/rfc/i915_gem_lmem.rst

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2021-05-28  7:27 ` Joonas Lahtinen
@ 2021-06-02  0:28   ` Dave Airlie
  2021-06-02  4:17     ` Dave Airlie
  0 siblings, 1 reply; 37+ messages in thread
From: Dave Airlie @ 2021-06-02  0:28 UTC (permalink / raw)
  To: Joonas Lahtinen
  Cc: DRM maintainer tools announcements, discussion, and development,
	Daniel Vetter, dri-devel, Rodrigo Vivi, Sean Paul,
	Intel Graphics Development

This has these two patches applied, and it doesn't build.

  drm/i915: drop the __i915_active_call pointer packing
  drm/i915: Fix crash in auto_retire

The latter patch shouldn't be necessary after the former, please fix
that up and resend and please build test trees before I get them in
future.

Dave.


On Fri, 28 May 2021 at 17:27, Joonas Lahtinen
<joonas.lahtinen@linux.intel.com> wrote:
>
> Quoting Joonas Lahtinen (2021-05-28 10:25:57)
> > Hi Dave & Daniel,
> >
> > Here's drm-intel-gt-next pull request.
> >
> > Most notably it has the reworked DG1 uAPI (behind CONFIG_BROKEN)
> > as requested. Important fix for Gitlab issues #3293 and #3450 and
> > one another kernel crash. Adds missing workarounds for Gen11 and
> > Gen12. Hiding of modparams for compiled-out features. Conversion
> > to use trylock shrinking for BSW VT-d and BXT.
> >
> > Then there are the uAPI kerneldoc improvements as part of the DG1
> > uAPI rework. Usual amount smaller fixes, code refactoring and
> > cleanups as prep for upcoming patches.
>
> And includes tag 'topic/intel-gen-to-ver-2021-04-19' (but that is
> already merged to drm-next).
>
> Regards, Joonas
>
> > Regards, Joonas
> >
> > ***
> >
> > drm-intel-gt-next-2021-05-28:
> >
> > UAPI Changes:
> > - Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)
> >
> > Driver Changes:
> >
> > - Fix for Gitlab issues #3293 and #3450:
> >   Avoid kernel crash on older L-shape memory machines
> >
> > - Hide modparams for compiled-out features (Tvrtko)
> > - Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
> > - Fix crash in auto_retire active retire callback due to
> >   misalignment (Stephane)
> > - Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
> > - Fix overlay active retire callback alignment (Tvrtko)
> > - Eliminate need to align active retire callbacks (Matt A, Ville,
> >   Daniel)
> > - Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
> > - Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
> > - Create stolen memory region from local memory on DG1 (CQ)
> > - Place PD in LMEM on dGFX (Matt A)
> > - Use WC when default state object is allocated in LMEM (Venkata)
> > - Determine the coherent map type based on object location (Venkata)
> > - Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
> > - Bypass aperture on fbdev when LMEM is available (Anusha)
> > - Return error value when displayable BO not in LMEM for dGFX (Mohammed)
> > - Do release kernel context if breadcrumb measure fails (Janusz)
> > - Apply Wa_22010271021 for all Gen11 platforms (Caz)
> > - Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
> > - Check actual RC6 enable status in PMU (Tvrtko)
> > - Fix a double free in gen8_preallocate_top_level_pdp (Lv)
> > - Remove erroneous i915_is_ggtt check for
> >   I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)
> >
> > - Convert uAPI headers to real kerneldoc (Matt A)
> > - Clean up kerneldoc warnings headers (Matt A, Maarten)
> > - Fail driver if LMEM training failed (Matt R)
> > - Avoid div-by-zero on Gen2 (Ville)
> > - Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
> > - Remove reference to struct drm_device.pdev (Thomas)
> > - Increase separation between GuC and execlists code (Chris, Matt B)
> >
> > - Use might_alloc() (Bernard)
> > - Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
> > - Deduplicate Wa_22010271021 programming on (Jose)
> > - Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
> > - Selftest improvements (Chris, Hsin-Yi, Tvrtko)
> > - Shuffle around init_memory_region for stolen (Matt)
> > - Typo fixes (wengjianfeng)
> >
> > The following changes since commit 425390c5dce6da76578389629d19517fcd79c959:
> >
> >   drm/i915: split dgfx features from gen 12 (2021-04-14 13:05:06 +0300)
> >
> > are available in the Git repository at:
> >
> >   git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-05-28
> >
> > for you to fetch changes up to 5b26d57fdb499c2363f3d895ef008e73ec02eb9b:
> >
> >   drm/i915: Add Wa_14010733141 (2021-05-27 11:05:09 -0700)
> >
> > ----------------------------------------------------------------
> > UAPI Changes:
> > - Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)
> >
> > Driver Changes:
> >
> > - Fix for Gitlab issues #3293 and #3450:
> >   Avoid kernel crash on older L-shape memory machines
> >
> > - Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
> > - Fix crash in auto_retire active retire callback due to
> >   misalignment (Stephane)
> > - Fix overlay active retire callback alignment (Tvrtko)
> > - Eliminate need to align active retire callbacks (Matt A, Ville,
> >   Daniel)
> > - Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
> > - Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
> > - Create stolen memory region from local memory on DG1 (CQ)
> > - Place PD in LMEM on dGFX (Matt A)
> > - Use WC when default state object is allocated in LMEM (Venkata)
> > - Determine the coherent map type based on object location (Venkata)
> > - Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
> > - Bypass aperture on fbdev when LMEM is available (Anusha)
> > - Return error value when displayable BO not in LMEM for dGFX (Mohammed)
> > - Do release kernel context if breadcrumb measure fails (Janusz)
> > - Hide modparams for compiled-out features (Tvrtko)
> > - Apply Wa_22010271021 for all Gen11 platforms (Caz)
> > - Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
> > - Check actual RC6 enable status in PMU (Tvrtko)
> > - Fix a double free in gen8_preallocate_top_level_pdp (Lv)
> > - Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
> > - Remove erroneous i915_is_ggtt check for
> >   I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)
> >
> > - Convert uAPI headers to real kerneldoc (Matt A)
> > - Clean up kerneldoc warnings headers (Matt A, Maarten)
> > - Fail driver if LMEM training failed (Matt R)
> > - Avoid div-by-zero on Gen2 (Ville)
> > - Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
> > - Remove reference to struct drm_device.pdev (Thomas)
> > - Increase separation between GuC and execlists code (Chris, Matt B)
> >
> > - Use might_alloc() (Bernard)
> > - Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
> > - Deduplicate Wa_22010271021 programming on (Jose)
> > - Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
> > - Selftest improvements (Chris, Hsin-Yi, Tvrtko)
> > - Shuffle around init_memory_region for stolen (Matt)
> > - Typo fixes (wengjianfeng)
> >
> > ----------------------------------------------------------------
> > Abdiel Janulgue (1):
> >       drm/i915/query: Expose memory regions through the query uAPI
> >
> > Aditya Swarup (1):
> >       drm/i915: Add Wa_14010733141
> >
> > Anusha Srivatsa (1):
> >       drm/i915/lmem: Bypass aperture when lmem is available
> >
> > Bernard Zhao (1):
> >       drm/i915: Use might_alloc()
> >
> > CQ Tang (2):
> >       drm/i915: Create stolen memory region from local memory
> >       drm/i915/stolen: enforce the min_page_size contract
> >
> > Caz Yokoyama (2):
> >       drm/i915/gen12: Add recommended hardware tuning value
> >       drm/i915/icl: add Wa_22010271021 for all gen11
> >
> > Chris Wilson (6):
> >       drm/i915/selftests: Skip aperture remapping selftest where there is no aperture
> >       drm/i915/selftests: Only query RAPL for integrated power measurements
> >       drm/i915/gem: Pin the L-shape quirked object as unshrinkable
> >       drm/i915/gt: Move engine setup out of set_default_submission
> >       drm/i915/gt: Move submission_method into intel_gt
> >       drm/i915/gt: Move CS interrupt handler to the backend
> >
> > Hsin-Yi Wang (1):
> >       drm/i915/selftests: Rename pm_ prefixed functions names
> >
> > Janusz Krzysztofik (1):
> >       drm/i915/gt: Do release kernel context if breadcrumb measure fails
> >
> > Joonas Lahtinen (1):
> >       Merge tag 'topic/intel-gen-to-ver-2021-04-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next
> >
> > José Roberto de Souza (1):
> >       drm/i915: Move Wa_16011163337 to gen12_ctx_workarounds_init()
> >
> > Lv Yunlong (1):
> >       drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp
> >
> > Maarten Lankhorst (4):
> >       drm/i915: Fix docbook descriptions for i915_gem_shrinker
> >       drm/i915: Fix docbook descriptions for i915_cmd_parser
> >       drm/i915: Use trylock in shrinker for ggtt on bsw vt-d and bxt, v2.
> >       drm/i915: Remove erroneous i915_is_ggtt check for I915_GEM_OBJECT_UNBIND_VM_TRYLOCK
> >
> > Matt Roper (1):
> >       drm/i915/lmem: Fail driver init if LMEM training failed
> >
> > Matthew Auld (19):
> >       drm/i915/uapi: fix kernel doc warnings
> >       drm/i915/uapi: convert i915_user_extension to kernel doc
> >       drm/i915/uapi: convert i915_query and friend to kernel doc
> >       drm/doc: add section for driver uAPI
> >       drm/i915/stolen: treat stolen local as normal local memory
> >       drm/i915/stolen: actually mark as contiguous
> >       drm/i915/gtt: map the PD up front
> >       drm/i915/gtt/dgfx: place the PD in LMEM
> >       drm/doc/rfc: i915 DG1 uAPI
> >       drm/i915: mark stolen as private
> >       drm/i915: rework gem_create flow for upcoming extensions
> >       drm/i915/uapi: introduce drm_i915_gem_create_ext
> >       drm/i915/uapi: implement object placement extension
> >       drm/i915/lmem: support optional CPU clearing for special internal use
> >       drm/i915/gem: clear userspace buffers for LMEM
> >       drm/i915/gem: hide new uAPI behind CONFIG_BROKEN
> >       drm/i915: drop the __i915_active_call pointer packing
> >       drm/i915/stolen: shuffle around init_memory_region
> >       drm/doc/rfc: drop the i915_gem_lmem.h header
> >
> > Mohammed Khajapasha (2):
> >       drm/i915/fbdev: Use lmem physical addresses for fb_mmap() on discrete
> >       drm/i915: Return error value when bo not in LMEM for discrete
> >
> > Stéphane Marchesin (1):
> >       drm/i915: Fix crash in auto_retire
> >
> > Swathi Dhanavanthri (1):
> >       drm/i915: Add Wa_14011060649
> >
> > Thomas Zimmermann (1):
> >       drm/i915/gem: Remove reference to struct drm_device.pdev
> >
> > Tvrtko Ursulin (6):
> >       drm/i915: Take request reference before arming the watchdog timer
> >       drm/i915/pmu: Check actual RC6 status
> >       drm/i915/overlay: Fix active retire callback alignment
> >       drm/i915/selftests: Fix active retire callback alignment
> >       drm/i915: Drop duplicate WaDisable4x2SubspanOptimization:hsw
> >       drm/i915/params: Align visibility of device level and global modparams
> >
> > Venkata Ramana Nayana (1):
> >       drm/i915/dg1: Fix mapping type for default state object
> >
> > Venkata Sandeep Dhanalakota (1):
> >       drm/i915: Update the helper to set correct mapping
> >
> > Ville Syrjälä (3):
> >       drm/i915: Avoid div-by-zero on gen2
> >       drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
> >       drm/i915: Give C0DRB3/C1DRB3 a _BW suffix
> >
> > wengjianfeng (1):
> >       drm/i915/gt: fix typo issue
> >
> >  Documentation/gpu/driver-uapi.rst                  |   8 +
> >  Documentation/gpu/index.rst                        |   1 +
> >  Documentation/gpu/rfc/i915_gem_lmem.rst            | 131 +++++++
> >  Documentation/gpu/rfc/index.rst                    |   4 +
> >  drivers/gpu/drm/i915/display/intel_display.c       |  10 +
> >  drivers/gpu/drm/i915/display/intel_fbdev.c         |  51 ++-
> >  drivers/gpu/drm/i915/display/intel_frontbuffer.c   |   4 +-
> >  drivers/gpu/drm/i915/display/intel_overlay.c       |   5 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_context.c        |   3 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_create.c         | 345 ++++++++++++++++--
> >  drivers/gpu/drm/i915/gem/i915_gem_ioctls.h         |   2 +
> >  drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  20 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   5 +
> >  drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_object.c         |   3 +
> >  drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  14 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   2 +
> >  drivers/gpu/drm/i915/gem/i915_gem_region.c         |  22 ++
> >  drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  14 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_stolen.c         | 159 +++++++--
> >  drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   3 +-
> >  .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  11 +-
> >  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  26 ++
> >  drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  13 +-
> >  drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  32 +-
> >  drivers/gpu/drm/i915/gt/intel_context.c            |   3 +-
> >  drivers/gpu/drm/i915/gt/intel_engine.h             |   8 +-
> >  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  21 +-
> >  drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   2 +-
> >  drivers/gpu/drm/i915/gt/intel_engine_types.h       |  14 +-
> >  .../gpu/drm/i915/gt/intel_execlists_submission.c   |  95 +++--
> >  .../gpu/drm/i915/gt/intel_execlists_submission.h   |   3 -
> >  drivers/gpu/drm/i915/gt/intel_ggtt.c               |  10 +-
> >  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   6 +-
> >  drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   3 +-
> >  drivers/gpu/drm/i915/gt/intel_gt_irq.c             |  82 ++---
> >  drivers/gpu/drm/i915/gt/intel_gt_irq.h             |  23 ++
> >  drivers/gpu/drm/i915/gt/intel_gt_types.h           |   7 +
> >  drivers/gpu/drm/i915/gt/intel_gtt.c                |  91 +++--
> >  drivers/gpu/drm/i915/gt/intel_gtt.h                |  12 +-
> >  drivers/gpu/drm/i915/gt/intel_lrc.c                |   4 +-
> >  drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   7 +-
> >  drivers/gpu/drm/i915/gt/intel_reset.c              | 201 +++++++----
> >  drivers/gpu/drm/i915/gt/intel_ring.c               |  11 +-
> >  drivers/gpu/drm/i915/gt/intel_ring_submission.c    |  12 +-
> >  drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
> >  drivers/gpu/drm/i915/gt/intel_timeline.c           |   4 +-
> >  drivers/gpu/drm/i915/gt/intel_workarounds.c        | 100 ++++--
> >  drivers/gpu/drm/i915/gt/mock_engine.c              |   2 +-
> >  drivers/gpu/drm/i915/gt/selftest_context.c         |   3 +-
> >  .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   2 +-
> >  drivers/gpu/drm/i915/gt/selftest_execlists.c       |   2 +-
> >  drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   4 +-
> >  drivers/gpu/drm/i915/gt/selftest_lrc.c             |   4 +-
> >  drivers/gpu/drm/i915/gt/selftest_rc6.c             |  32 +-
> >  drivers/gpu/drm/i915/gt/selftest_ring_submission.c |   2 +-
> >  drivers/gpu/drm/i915/gt/selftest_rps.c             |   6 +-
> >  drivers/gpu/drm/i915/gt/shmem_utils.c              |   4 +-
> >  drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   4 +-
> >  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  64 ++--
> >  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   1 -
> >  drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   4 +-
> >  drivers/gpu/drm/i915/i915_active.c                 |  11 +-
> >  drivers/gpu/drm/i915/i915_active.h                 |  11 +-
> >  drivers/gpu/drm/i915/i915_active_types.h           |   5 -
> >  drivers/gpu/drm/i915/i915_cmd_parser.c             |  18 +-
> >  drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
> >  drivers/gpu/drm/i915/i915_drv.c                    |   1 +
> >  drivers/gpu/drm/i915/i915_drv.h                    |  29 +-
> >  drivers/gpu/drm/i915/i915_gem.c                    |  25 +-
> >  drivers/gpu/drm/i915/i915_irq.c                    |  10 +-
> >  drivers/gpu/drm/i915/i915_params.h                 |   8 +-
> >  drivers/gpu/drm/i915/i915_pci.c                    |   2 +-
> >  drivers/gpu/drm/i915/i915_perf.c                   |  10 +-
> >  drivers/gpu/drm/i915/i915_pmu.c                    |   4 +-
> >  drivers/gpu/drm/i915/i915_query.c                  |  62 ++++
> >  drivers/gpu/drm/i915/i915_reg.h                    |  17 +-
> >  drivers/gpu/drm/i915/i915_request.c                |   5 +-
> >  drivers/gpu/drm/i915/i915_vma.c                    |  31 +-
> >  drivers/gpu/drm/i915/intel_memory_region.c         |  29 +-
> >  drivers/gpu/drm/i915/intel_memory_region.h         |  18 +-
> >  drivers/gpu/drm/i915/intel_uncore.c                |  12 +
> >  drivers/gpu/drm/i915/selftests/i915_active.c       |   2 +-
> >  drivers/gpu/drm/i915/selftests/i915_gem.c          |  20 +-
> >  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  10 +-
> >  drivers/gpu/drm/i915/selftests/i915_perf.c         |   3 +-
> >  drivers/gpu/drm/i915/selftests/i915_vma.c          |   3 +
> >  drivers/gpu/drm/i915/selftests/igt_spinner.c       |   4 +-
> >  .../gpu/drm/i915/selftests/intel_memory_region.c   |  87 ++++-
> >  drivers/gpu/drm/i915/selftests/librapl.c           |  10 +
> >  drivers/gpu/drm/i915/selftests/librapl.h           |   4 +
> >  include/uapi/drm/i915_drm.h                        | 393 +++++++++++++++++++--
> >  92 files changed, 2018 insertions(+), 575 deletions(-)
> >  create mode 100644 Documentation/gpu/driver-uapi.rst
> >  create mode 100644 Documentation/gpu/rfc/i915_gem_lmem.rst

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PULL] drm-intel-gt-next
  2021-05-28  7:25 Joonas Lahtinen
@ 2021-05-28  7:27 ` Joonas Lahtinen
  2021-06-02  0:28   ` Dave Airlie
  0 siblings, 1 reply; 37+ messages in thread
From: Joonas Lahtinen @ 2021-05-28  7:27 UTC (permalink / raw)
  To: Daniel Vetter, Dave Airlie
  Cc: dim-tools, intel-gfx, dri-devel, Rodrigo Vivi, Sean Paul

Quoting Joonas Lahtinen (2021-05-28 10:25:57)
> Hi Dave & Daniel,
> 
> Here's drm-intel-gt-next pull request.
> 
> Most notably it has the reworked DG1 uAPI (behind CONFIG_BROKEN)
> as requested. Important fix for Gitlab issues #3293 and #3450 and
> one another kernel crash. Adds missing workarounds for Gen11 and
> Gen12. Hiding of modparams for compiled-out features. Conversion
> to use trylock shrinking for BSW VT-d and BXT.
> 
> Then there are the uAPI kerneldoc improvements as part of the DG1
> uAPI rework. Usual amount smaller fixes, code refactoring and
> cleanups as prep for upcoming patches.

And includes tag 'topic/intel-gen-to-ver-2021-04-19' (but that is
already merged to drm-next).

Regards, Joonas

> Regards, Joonas
> 
> ***
> 
> drm-intel-gt-next-2021-05-28:
> 
> UAPI Changes:
> - Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)
> 
> Driver Changes:
> 
> - Fix for Gitlab issues #3293 and #3450:
>   Avoid kernel crash on older L-shape memory machines
> 
> - Hide modparams for compiled-out features (Tvrtko)
> - Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
> - Fix crash in auto_retire active retire callback due to
>   misalignment (Stephane)
> - Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
> - Fix overlay active retire callback alignment (Tvrtko)
> - Eliminate need to align active retire callbacks (Matt A, Ville,
>   Daniel)
> - Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
> - Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
> - Create stolen memory region from local memory on DG1 (CQ)
> - Place PD in LMEM on dGFX (Matt A)
> - Use WC when default state object is allocated in LMEM (Venkata)
> - Determine the coherent map type based on object location (Venkata)
> - Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
> - Bypass aperture on fbdev when LMEM is available (Anusha)
> - Return error value when displayable BO not in LMEM for dGFX (Mohammed)
> - Do release kernel context if breadcrumb measure fails (Janusz)
> - Apply Wa_22010271021 for all Gen11 platforms (Caz)
> - Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
> - Check actual RC6 enable status in PMU (Tvrtko)
> - Fix a double free in gen8_preallocate_top_level_pdp (Lv)
> - Remove erroneous i915_is_ggtt check for
>   I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)
> 
> - Convert uAPI headers to real kerneldoc (Matt A)
> - Clean up kerneldoc warnings headers (Matt A, Maarten)
> - Fail driver if LMEM training failed (Matt R)
> - Avoid div-by-zero on Gen2 (Ville)
> - Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
> - Remove reference to struct drm_device.pdev (Thomas)
> - Increase separation between GuC and execlists code (Chris, Matt B)
> 
> - Use might_alloc() (Bernard)
> - Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
> - Deduplicate Wa_22010271021 programming on (Jose)
> - Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
> - Selftest improvements (Chris, Hsin-Yi, Tvrtko)
> - Shuffle around init_memory_region for stolen (Matt)
> - Typo fixes (wengjianfeng)
> 
> The following changes since commit 425390c5dce6da76578389629d19517fcd79c959:
> 
>   drm/i915: split dgfx features from gen 12 (2021-04-14 13:05:06 +0300)
> 
> are available in the Git repository at:
> 
>   git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-05-28
> 
> for you to fetch changes up to 5b26d57fdb499c2363f3d895ef008e73ec02eb9b:
> 
>   drm/i915: Add Wa_14010733141 (2021-05-27 11:05:09 -0700)
> 
> ----------------------------------------------------------------
> UAPI Changes:
> - Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)
> 
> Driver Changes:
> 
> - Fix for Gitlab issues #3293 and #3450:
>   Avoid kernel crash on older L-shape memory machines
> 
> - Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
> - Fix crash in auto_retire active retire callback due to
>   misalignment (Stephane)
> - Fix overlay active retire callback alignment (Tvrtko)
> - Eliminate need to align active retire callbacks (Matt A, Ville,
>   Daniel)
> - Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
> - Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
> - Create stolen memory region from local memory on DG1 (CQ)
> - Place PD in LMEM on dGFX (Matt A)
> - Use WC when default state object is allocated in LMEM (Venkata)
> - Determine the coherent map type based on object location (Venkata)
> - Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
> - Bypass aperture on fbdev when LMEM is available (Anusha)
> - Return error value when displayable BO not in LMEM for dGFX (Mohammed)
> - Do release kernel context if breadcrumb measure fails (Janusz)
> - Hide modparams for compiled-out features (Tvrtko)
> - Apply Wa_22010271021 for all Gen11 platforms (Caz)
> - Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
> - Check actual RC6 enable status in PMU (Tvrtko)
> - Fix a double free in gen8_preallocate_top_level_pdp (Lv)
> - Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
> - Remove erroneous i915_is_ggtt check for
>   I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)
> 
> - Convert uAPI headers to real kerneldoc (Matt A)
> - Clean up kerneldoc warnings headers (Matt A, Maarten)
> - Fail driver if LMEM training failed (Matt R)
> - Avoid div-by-zero on Gen2 (Ville)
> - Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
> - Remove reference to struct drm_device.pdev (Thomas)
> - Increase separation between GuC and execlists code (Chris, Matt B)
> 
> - Use might_alloc() (Bernard)
> - Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
> - Deduplicate Wa_22010271021 programming on (Jose)
> - Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
> - Selftest improvements (Chris, Hsin-Yi, Tvrtko)
> - Shuffle around init_memory_region for stolen (Matt)
> - Typo fixes (wengjianfeng)
> 
> ----------------------------------------------------------------
> Abdiel Janulgue (1):
>       drm/i915/query: Expose memory regions through the query uAPI
> 
> Aditya Swarup (1):
>       drm/i915: Add Wa_14010733141
> 
> Anusha Srivatsa (1):
>       drm/i915/lmem: Bypass aperture when lmem is available
> 
> Bernard Zhao (1):
>       drm/i915: Use might_alloc()
> 
> CQ Tang (2):
>       drm/i915: Create stolen memory region from local memory
>       drm/i915/stolen: enforce the min_page_size contract
> 
> Caz Yokoyama (2):
>       drm/i915/gen12: Add recommended hardware tuning value
>       drm/i915/icl: add Wa_22010271021 for all gen11
> 
> Chris Wilson (6):
>       drm/i915/selftests: Skip aperture remapping selftest where there is no aperture
>       drm/i915/selftests: Only query RAPL for integrated power measurements
>       drm/i915/gem: Pin the L-shape quirked object as unshrinkable
>       drm/i915/gt: Move engine setup out of set_default_submission
>       drm/i915/gt: Move submission_method into intel_gt
>       drm/i915/gt: Move CS interrupt handler to the backend
> 
> Hsin-Yi Wang (1):
>       drm/i915/selftests: Rename pm_ prefixed functions names
> 
> Janusz Krzysztofik (1):
>       drm/i915/gt: Do release kernel context if breadcrumb measure fails
> 
> Joonas Lahtinen (1):
>       Merge tag 'topic/intel-gen-to-ver-2021-04-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next
> 
> José Roberto de Souza (1):
>       drm/i915: Move Wa_16011163337 to gen12_ctx_workarounds_init()
> 
> Lv Yunlong (1):
>       drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp
> 
> Maarten Lankhorst (4):
>       drm/i915: Fix docbook descriptions for i915_gem_shrinker
>       drm/i915: Fix docbook descriptions for i915_cmd_parser
>       drm/i915: Use trylock in shrinker for ggtt on bsw vt-d and bxt, v2.
>       drm/i915: Remove erroneous i915_is_ggtt check for I915_GEM_OBJECT_UNBIND_VM_TRYLOCK
> 
> Matt Roper (1):
>       drm/i915/lmem: Fail driver init if LMEM training failed
> 
> Matthew Auld (19):
>       drm/i915/uapi: fix kernel doc warnings
>       drm/i915/uapi: convert i915_user_extension to kernel doc
>       drm/i915/uapi: convert i915_query and friend to kernel doc
>       drm/doc: add section for driver uAPI
>       drm/i915/stolen: treat stolen local as normal local memory
>       drm/i915/stolen: actually mark as contiguous
>       drm/i915/gtt: map the PD up front
>       drm/i915/gtt/dgfx: place the PD in LMEM
>       drm/doc/rfc: i915 DG1 uAPI
>       drm/i915: mark stolen as private
>       drm/i915: rework gem_create flow for upcoming extensions
>       drm/i915/uapi: introduce drm_i915_gem_create_ext
>       drm/i915/uapi: implement object placement extension
>       drm/i915/lmem: support optional CPU clearing for special internal use
>       drm/i915/gem: clear userspace buffers for LMEM
>       drm/i915/gem: hide new uAPI behind CONFIG_BROKEN
>       drm/i915: drop the __i915_active_call pointer packing
>       drm/i915/stolen: shuffle around init_memory_region
>       drm/doc/rfc: drop the i915_gem_lmem.h header
> 
> Mohammed Khajapasha (2):
>       drm/i915/fbdev: Use lmem physical addresses for fb_mmap() on discrete
>       drm/i915: Return error value when bo not in LMEM for discrete
> 
> Stéphane Marchesin (1):
>       drm/i915: Fix crash in auto_retire
> 
> Swathi Dhanavanthri (1):
>       drm/i915: Add Wa_14011060649
> 
> Thomas Zimmermann (1):
>       drm/i915/gem: Remove reference to struct drm_device.pdev
> 
> Tvrtko Ursulin (6):
>       drm/i915: Take request reference before arming the watchdog timer
>       drm/i915/pmu: Check actual RC6 status
>       drm/i915/overlay: Fix active retire callback alignment
>       drm/i915/selftests: Fix active retire callback alignment
>       drm/i915: Drop duplicate WaDisable4x2SubspanOptimization:hsw
>       drm/i915/params: Align visibility of device level and global modparams
> 
> Venkata Ramana Nayana (1):
>       drm/i915/dg1: Fix mapping type for default state object
> 
> Venkata Sandeep Dhanalakota (1):
>       drm/i915: Update the helper to set correct mapping
> 
> Ville Syrjälä (3):
>       drm/i915: Avoid div-by-zero on gen2
>       drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
>       drm/i915: Give C0DRB3/C1DRB3 a _BW suffix
> 
> wengjianfeng (1):
>       drm/i915/gt: fix typo issue
> 
>  Documentation/gpu/driver-uapi.rst                  |   8 +
>  Documentation/gpu/index.rst                        |   1 +
>  Documentation/gpu/rfc/i915_gem_lmem.rst            | 131 +++++++
>  Documentation/gpu/rfc/index.rst                    |   4 +
>  drivers/gpu/drm/i915/display/intel_display.c       |  10 +
>  drivers/gpu/drm/i915/display/intel_fbdev.c         |  51 ++-
>  drivers/gpu/drm/i915/display/intel_frontbuffer.c   |   4 +-
>  drivers/gpu/drm/i915/display/intel_overlay.c       |   5 +-
>  drivers/gpu/drm/i915/gem/i915_gem_context.c        |   3 +-
>  drivers/gpu/drm/i915/gem/i915_gem_create.c         | 345 ++++++++++++++++--
>  drivers/gpu/drm/i915/gem/i915_gem_ioctls.h         |   2 +
>  drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  20 +-
>  drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   5 +
>  drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
>  drivers/gpu/drm/i915/gem/i915_gem_object.c         |   3 +
>  drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  14 +-
>  drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   2 +
>  drivers/gpu/drm/i915/gem/i915_gem_region.c         |  22 ++
>  drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  14 +-
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c         | 159 +++++++--
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   3 +-
>  .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  11 +-
>  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  26 ++
>  drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  13 +-
>  drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  32 +-
>  drivers/gpu/drm/i915/gt/intel_context.c            |   3 +-
>  drivers/gpu/drm/i915/gt/intel_engine.h             |   8 +-
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  21 +-
>  drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   2 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h       |  14 +-
>  .../gpu/drm/i915/gt/intel_execlists_submission.c   |  95 +++--
>  .../gpu/drm/i915/gt/intel_execlists_submission.h   |   3 -
>  drivers/gpu/drm/i915/gt/intel_ggtt.c               |  10 +-
>  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   6 +-
>  drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   3 +-
>  drivers/gpu/drm/i915/gt/intel_gt_irq.c             |  82 ++---
>  drivers/gpu/drm/i915/gt/intel_gt_irq.h             |  23 ++
>  drivers/gpu/drm/i915/gt/intel_gt_types.h           |   7 +
>  drivers/gpu/drm/i915/gt/intel_gtt.c                |  91 +++--
>  drivers/gpu/drm/i915/gt/intel_gtt.h                |  12 +-
>  drivers/gpu/drm/i915/gt/intel_lrc.c                |   4 +-
>  drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   7 +-
>  drivers/gpu/drm/i915/gt/intel_reset.c              | 201 +++++++----
>  drivers/gpu/drm/i915/gt/intel_ring.c               |  11 +-
>  drivers/gpu/drm/i915/gt/intel_ring_submission.c    |  12 +-
>  drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
>  drivers/gpu/drm/i915/gt/intel_timeline.c           |   4 +-
>  drivers/gpu/drm/i915/gt/intel_workarounds.c        | 100 ++++--
>  drivers/gpu/drm/i915/gt/mock_engine.c              |   2 +-
>  drivers/gpu/drm/i915/gt/selftest_context.c         |   3 +-
>  .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   2 +-
>  drivers/gpu/drm/i915/gt/selftest_execlists.c       |   2 +-
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   4 +-
>  drivers/gpu/drm/i915/gt/selftest_lrc.c             |   4 +-
>  drivers/gpu/drm/i915/gt/selftest_rc6.c             |  32 +-
>  drivers/gpu/drm/i915/gt/selftest_ring_submission.c |   2 +-
>  drivers/gpu/drm/i915/gt/selftest_rps.c             |   6 +-
>  drivers/gpu/drm/i915/gt/shmem_utils.c              |   4 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   4 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  64 ++--
>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   1 -
>  drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   4 +-
>  drivers/gpu/drm/i915/i915_active.c                 |  11 +-
>  drivers/gpu/drm/i915/i915_active.h                 |  11 +-
>  drivers/gpu/drm/i915/i915_active_types.h           |   5 -
>  drivers/gpu/drm/i915/i915_cmd_parser.c             |  18 +-
>  drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
>  drivers/gpu/drm/i915/i915_drv.c                    |   1 +
>  drivers/gpu/drm/i915/i915_drv.h                    |  29 +-
>  drivers/gpu/drm/i915/i915_gem.c                    |  25 +-
>  drivers/gpu/drm/i915/i915_irq.c                    |  10 +-
>  drivers/gpu/drm/i915/i915_params.h                 |   8 +-
>  drivers/gpu/drm/i915/i915_pci.c                    |   2 +-
>  drivers/gpu/drm/i915/i915_perf.c                   |  10 +-
>  drivers/gpu/drm/i915/i915_pmu.c                    |   4 +-
>  drivers/gpu/drm/i915/i915_query.c                  |  62 ++++
>  drivers/gpu/drm/i915/i915_reg.h                    |  17 +-
>  drivers/gpu/drm/i915/i915_request.c                |   5 +-
>  drivers/gpu/drm/i915/i915_vma.c                    |  31 +-
>  drivers/gpu/drm/i915/intel_memory_region.c         |  29 +-
>  drivers/gpu/drm/i915/intel_memory_region.h         |  18 +-
>  drivers/gpu/drm/i915/intel_uncore.c                |  12 +
>  drivers/gpu/drm/i915/selftests/i915_active.c       |   2 +-
>  drivers/gpu/drm/i915/selftests/i915_gem.c          |  20 +-
>  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  10 +-
>  drivers/gpu/drm/i915/selftests/i915_perf.c         |   3 +-
>  drivers/gpu/drm/i915/selftests/i915_vma.c          |   3 +
>  drivers/gpu/drm/i915/selftests/igt_spinner.c       |   4 +-
>  .../gpu/drm/i915/selftests/intel_memory_region.c   |  87 ++++-
>  drivers/gpu/drm/i915/selftests/librapl.c           |  10 +
>  drivers/gpu/drm/i915/selftests/librapl.h           |   4 +
>  include/uapi/drm/i915_drm.h                        | 393 +++++++++++++++++++--
>  92 files changed, 2018 insertions(+), 575 deletions(-)
>  create mode 100644 Documentation/gpu/driver-uapi.rst
>  create mode 100644 Documentation/gpu/rfc/i915_gem_lmem.rst

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-05-28  7:25 Joonas Lahtinen
  2021-05-28  7:27 ` Joonas Lahtinen
  0 siblings, 1 reply; 37+ messages in thread
From: Joonas Lahtinen @ 2021-05-28  7:25 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Here's drm-intel-gt-next pull request.

Most notably it has the reworked DG1 uAPI (behind CONFIG_BROKEN)
as requested. Important fix for Gitlab issues #3293 and #3450 and
one another kernel crash. Adds missing workarounds for Gen11 and
Gen12. Hiding of modparams for compiled-out features. Conversion
to use trylock shrinking for BSW VT-d and BXT.

Then there are the uAPI kerneldoc improvements as part of the DG1
uAPI rework. Usual amount smaller fixes, code refactoring and
cleanups as prep for upcoming patches.

Regards, Joonas

***

drm-intel-gt-next-2021-05-28:

UAPI Changes:
- Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)

Driver Changes:

- Fix for Gitlab issues #3293 and #3450:
  Avoid kernel crash on older L-shape memory machines

- Hide modparams for compiled-out features (Tvrtko)
- Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
- Fix crash in auto_retire active retire callback due to
  misalignment (Stephane)
- Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
- Fix overlay active retire callback alignment (Tvrtko)
- Eliminate need to align active retire callbacks (Matt A, Ville,
  Daniel)
- Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
- Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
- Create stolen memory region from local memory on DG1 (CQ)
- Place PD in LMEM on dGFX (Matt A)
- Use WC when default state object is allocated in LMEM (Venkata)
- Determine the coherent map type based on object location (Venkata)
- Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
- Bypass aperture on fbdev when LMEM is available (Anusha)
- Return error value when displayable BO not in LMEM for dGFX (Mohammed)
- Do release kernel context if breadcrumb measure fails (Janusz)
- Apply Wa_22010271021 for all Gen11 platforms (Caz)
- Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
- Check actual RC6 enable status in PMU (Tvrtko)
- Fix a double free in gen8_preallocate_top_level_pdp (Lv)
- Remove erroneous i915_is_ggtt check for
  I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)

- Convert uAPI headers to real kerneldoc (Matt A)
- Clean up kerneldoc warnings headers (Matt A, Maarten)
- Fail driver if LMEM training failed (Matt R)
- Avoid div-by-zero on Gen2 (Ville)
- Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
- Remove reference to struct drm_device.pdev (Thomas)
- Increase separation between GuC and execlists code (Chris, Matt B)

- Use might_alloc() (Bernard)
- Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
- Deduplicate Wa_22010271021 programming on (Jose)
- Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
- Selftest improvements (Chris, Hsin-Yi, Tvrtko)
- Shuffle around init_memory_region for stolen (Matt)
- Typo fixes (wengjianfeng)

The following changes since commit 425390c5dce6da76578389629d19517fcd79c959:

  drm/i915: split dgfx features from gen 12 (2021-04-14 13:05:06 +0300)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-05-28

for you to fetch changes up to 5b26d57fdb499c2363f3d895ef008e73ec02eb9b:

  drm/i915: Add Wa_14010733141 (2021-05-27 11:05:09 -0700)

----------------------------------------------------------------
UAPI Changes:
- Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)

Driver Changes:

- Fix for Gitlab issues #3293 and #3450:
  Avoid kernel crash on older L-shape memory machines

- Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
- Fix crash in auto_retire active retire callback due to
  misalignment (Stephane)
- Fix overlay active retire callback alignment (Tvrtko)
- Eliminate need to align active retire callbacks (Matt A, Ville,
  Daniel)
- Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
- Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
- Create stolen memory region from local memory on DG1 (CQ)
- Place PD in LMEM on dGFX (Matt A)
- Use WC when default state object is allocated in LMEM (Venkata)
- Determine the coherent map type based on object location (Venkata)
- Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
- Bypass aperture on fbdev when LMEM is available (Anusha)
- Return error value when displayable BO not in LMEM for dGFX (Mohammed)
- Do release kernel context if breadcrumb measure fails (Janusz)
- Hide modparams for compiled-out features (Tvrtko)
- Apply Wa_22010271021 for all Gen11 platforms (Caz)
- Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
- Check actual RC6 enable status in PMU (Tvrtko)
- Fix a double free in gen8_preallocate_top_level_pdp (Lv)
- Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
- Remove erroneous i915_is_ggtt check for
  I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)

- Convert uAPI headers to real kerneldoc (Matt A)
- Clean up kerneldoc warnings headers (Matt A, Maarten)
- Fail driver if LMEM training failed (Matt R)
- Avoid div-by-zero on Gen2 (Ville)
- Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
- Remove reference to struct drm_device.pdev (Thomas)
- Increase separation between GuC and execlists code (Chris, Matt B)

- Use might_alloc() (Bernard)
- Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
- Deduplicate Wa_22010271021 programming on (Jose)
- Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
- Selftest improvements (Chris, Hsin-Yi, Tvrtko)
- Shuffle around init_memory_region for stolen (Matt)
- Typo fixes (wengjianfeng)

----------------------------------------------------------------
Abdiel Janulgue (1):
      drm/i915/query: Expose memory regions through the query uAPI

Aditya Swarup (1):
      drm/i915: Add Wa_14010733141

Anusha Srivatsa (1):
      drm/i915/lmem: Bypass aperture when lmem is available

Bernard Zhao (1):
      drm/i915: Use might_alloc()

CQ Tang (2):
      drm/i915: Create stolen memory region from local memory
      drm/i915/stolen: enforce the min_page_size contract

Caz Yokoyama (2):
      drm/i915/gen12: Add recommended hardware tuning value
      drm/i915/icl: add Wa_22010271021 for all gen11

Chris Wilson (6):
      drm/i915/selftests: Skip aperture remapping selftest where there is no aperture
      drm/i915/selftests: Only query RAPL for integrated power measurements
      drm/i915/gem: Pin the L-shape quirked object as unshrinkable
      drm/i915/gt: Move engine setup out of set_default_submission
      drm/i915/gt: Move submission_method into intel_gt
      drm/i915/gt: Move CS interrupt handler to the backend

Hsin-Yi Wang (1):
      drm/i915/selftests: Rename pm_ prefixed functions names

Janusz Krzysztofik (1):
      drm/i915/gt: Do release kernel context if breadcrumb measure fails

Joonas Lahtinen (1):
      Merge tag 'topic/intel-gen-to-ver-2021-04-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next

José Roberto de Souza (1):
      drm/i915: Move Wa_16011163337 to gen12_ctx_workarounds_init()

Lv Yunlong (1):
      drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp

Maarten Lankhorst (4):
      drm/i915: Fix docbook descriptions for i915_gem_shrinker
      drm/i915: Fix docbook descriptions for i915_cmd_parser
      drm/i915: Use trylock in shrinker for ggtt on bsw vt-d and bxt, v2.
      drm/i915: Remove erroneous i915_is_ggtt check for I915_GEM_OBJECT_UNBIND_VM_TRYLOCK

Matt Roper (1):
      drm/i915/lmem: Fail driver init if LMEM training failed

Matthew Auld (19):
      drm/i915/uapi: fix kernel doc warnings
      drm/i915/uapi: convert i915_user_extension to kernel doc
      drm/i915/uapi: convert i915_query and friend to kernel doc
      drm/doc: add section for driver uAPI
      drm/i915/stolen: treat stolen local as normal local memory
      drm/i915/stolen: actually mark as contiguous
      drm/i915/gtt: map the PD up front
      drm/i915/gtt/dgfx: place the PD in LMEM
      drm/doc/rfc: i915 DG1 uAPI
      drm/i915: mark stolen as private
      drm/i915: rework gem_create flow for upcoming extensions
      drm/i915/uapi: introduce drm_i915_gem_create_ext
      drm/i915/uapi: implement object placement extension
      drm/i915/lmem: support optional CPU clearing for special internal use
      drm/i915/gem: clear userspace buffers for LMEM
      drm/i915/gem: hide new uAPI behind CONFIG_BROKEN
      drm/i915: drop the __i915_active_call pointer packing
      drm/i915/stolen: shuffle around init_memory_region
      drm/doc/rfc: drop the i915_gem_lmem.h header

Mohammed Khajapasha (2):
      drm/i915/fbdev: Use lmem physical addresses for fb_mmap() on discrete
      drm/i915: Return error value when bo not in LMEM for discrete

Stéphane Marchesin (1):
      drm/i915: Fix crash in auto_retire

Swathi Dhanavanthri (1):
      drm/i915: Add Wa_14011060649

Thomas Zimmermann (1):
      drm/i915/gem: Remove reference to struct drm_device.pdev

Tvrtko Ursulin (6):
      drm/i915: Take request reference before arming the watchdog timer
      drm/i915/pmu: Check actual RC6 status
      drm/i915/overlay: Fix active retire callback alignment
      drm/i915/selftests: Fix active retire callback alignment
      drm/i915: Drop duplicate WaDisable4x2SubspanOptimization:hsw
      drm/i915/params: Align visibility of device level and global modparams

Venkata Ramana Nayana (1):
      drm/i915/dg1: Fix mapping type for default state object

Venkata Sandeep Dhanalakota (1):
      drm/i915: Update the helper to set correct mapping

Ville Syrjälä (3):
      drm/i915: Avoid div-by-zero on gen2
      drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
      drm/i915: Give C0DRB3/C1DRB3 a _BW suffix

wengjianfeng (1):
      drm/i915/gt: fix typo issue

 Documentation/gpu/driver-uapi.rst                  |   8 +
 Documentation/gpu/index.rst                        |   1 +
 Documentation/gpu/rfc/i915_gem_lmem.rst            | 131 +++++++
 Documentation/gpu/rfc/index.rst                    |   4 +
 drivers/gpu/drm/i915/display/intel_display.c       |  10 +
 drivers/gpu/drm/i915/display/intel_fbdev.c         |  51 ++-
 drivers/gpu/drm/i915/display/intel_frontbuffer.c   |   4 +-
 drivers/gpu/drm/i915/display/intel_overlay.c       |   5 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_create.c         | 345 ++++++++++++++++--
 drivers/gpu/drm/i915/gem/i915_gem_ioctls.h         |   2 +
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  20 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   5 +
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  14 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   2 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |  22 ++
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |  14 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         | 159 +++++++--
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   3 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  11 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  26 ++
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  13 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  32 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   8 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  21 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   2 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |  14 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  95 +++--
 .../gpu/drm/i915/gt/intel_execlists_submission.h   |   3 -
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  10 +-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   6 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |  82 ++---
 drivers/gpu/drm/i915/gt/intel_gt_irq.h             |  23 ++
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   7 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  91 +++--
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  12 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |   4 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   7 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              | 201 +++++++----
 drivers/gpu/drm/i915/gt/intel_ring.c               |  11 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |  12 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |   4 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 100 ++++--
 drivers/gpu/drm/i915/gt/mock_engine.c              |   2 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |   3 +-
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   2 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |   2 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |   4 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   4 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |  32 +-
 drivers/gpu/drm/i915/gt/selftest_ring_submission.c |   2 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   6 +-
 drivers/gpu/drm/i915/gt/shmem_utils.c              |   4 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   4 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  64 ++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |   1 -
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   4 +-
 drivers/gpu/drm/i915/i915_active.c                 |  11 +-
 drivers/gpu/drm/i915/i915_active.h                 |  11 +-
 drivers/gpu/drm/i915/i915_active_types.h           |   5 -
 drivers/gpu/drm/i915/i915_cmd_parser.c             |  18 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
 drivers/gpu/drm/i915/i915_drv.c                    |   1 +
 drivers/gpu/drm/i915/i915_drv.h                    |  29 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  25 +-
 drivers/gpu/drm/i915/i915_irq.c                    |  10 +-
 drivers/gpu/drm/i915/i915_params.h                 |   8 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   2 +-
 drivers/gpu/drm/i915/i915_perf.c                   |  10 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |   4 +-
 drivers/gpu/drm/i915/i915_query.c                  |  62 ++++
 drivers/gpu/drm/i915/i915_reg.h                    |  17 +-
 drivers/gpu/drm/i915/i915_request.c                |   5 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  31 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |  29 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |  18 +-
 drivers/gpu/drm/i915/intel_uncore.c                |  12 +
 drivers/gpu/drm/i915/selftests/i915_active.c       |   2 +-
 drivers/gpu/drm/i915/selftests/i915_gem.c          |  20 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  10 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |   3 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |   3 +
 drivers/gpu/drm/i915/selftests/igt_spinner.c       |   4 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  87 ++++-
 drivers/gpu/drm/i915/selftests/librapl.c           |  10 +
 drivers/gpu/drm/i915/selftests/librapl.h           |   4 +
 include/uapi/drm/i915_drm.h                        | 393 +++++++++++++++++++--
 92 files changed, 2018 insertions(+), 575 deletions(-)
 create mode 100644 Documentation/gpu/driver-uapi.rst
 create mode 100644 Documentation/gpu/rfc/i915_gem_lmem.rst

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-04-06 13:40 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-04-06 13:40 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Bit late PR due to Easter break. 

Prep work for local memory support as requested. Hard hang
fix for Sandybridge. Sanitize dma-buf size on import and
avoid GPU reset if heartbeat callback runs before timeout.

The rest is mostly small fixes and code/checkpatch cleanups.

Regards, Joonas

***

drm-intel-gt-next-2021-04-06:
Driver Changes:

- Prepare for local/device memory support on DG1 by starting
  to use it for kernel internal allocations: context, ring
  and engine scratch (Matt A, CQ, Abdiel, Imre)
- Sandybridge fix to avoid hard hang on ring resume (Chris)
- Limit imported dma-buf size to int32 (Matt A)
- Double check heartbeat timeout before resetting (Chris)

- Use new tasklet API for execution list (Emil)
- Fix SPDX checkpats warnings (Chris)
- Fixes for various checkpatch warnings (Chris)
- Selftest improvements (Chris)
- Move the defer_request waiter active assertion to correct spot (Chris)
- Make local-memory probing a GT operation (Matt, Tvrtko)
- Protect against request freeing during cancellation on wedging (Chris)
- Retire unexpected starting state error dumping (Chris)
- Distinction of memory regions in debugging (Zbigniew)
- Always flush the submission queue on checking for idle (Chris)

- Consolidate 2big error check to helper (Matt)
- Decrease number of subplatform bits (Tvrtko)
- Remove unused internal request priority levels (Chris)
- Document the unused internal header bits in buddy allocator (Matt)
- Cleanup the region class/instance encoding (Matt)

The following changes since commit 06debd6e1b28029e6e77c41e59a162868f377897:

  Merge tag 'drm-intel-next-2021-03-16' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2021-03-18 08:06:34 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-04-06

for you to fetch changes up to 2da21daa7d93817fa82f703c29adfcb5eed7f77d:

  drm/i915/gt: Always flush the submission queue on checking for idle (2021-03-24 19:31:59 +0100)

----------------------------------------------------------------
Driver Changes:

- Prepare for local/device memory support on DG1 by starting
  to use it for kernel internal allocations: context, ring
  and engine scratch (Matt A, CQ, Abdiel, Imre)
- Sandybridge fix to avoid hard hang on ring resume (Chris)
- Limit imported dma-buf size to int32 (Matt A)
- Double check heartbeat timeout before resetting (Chris)

- Use new tasklet API for execution list (Emil)
- Fix SPDX checkpats warnings (Chris)
- Fixes for various checkpatch warnings (Chris)
- Selftest improvements (Chris)
- Move the defer_request waiter active assertion to correct spot (Chris)
- Make local-memory probing a GT operation (Matt, Tvrtko)
- Protect against request freeing during cancellation on wedging (Chris)
- Retire unexpected starting state error dumping (Chris)
- Distinction of memory regions in debugging (Zbigniew)
- Always flush the submission queue on checking for idle (Chris)

- Consolidate 2big error check to helper (Matt)
- Decrease number of subplatform bits (Tvrtko)
- Remove unused internal request priority levels (Chris)
- Document the unused internal header bits in buddy allocator (Matt)
- Cleanup the region class/instance encoding (Matt)

----------------------------------------------------------------
Abdiel Janulgue (1):
      drm/i915: introduce mem->reserved

CQ Tang (1):
      drm/i915: reserve stolen for LMEM region

Chris Wilson (22):
      drm/i915: Strip out internal priorities
      drm/i915: Remove I915_USER_PRIORITY_SHIFT
      drm/i915/gt: Call stop_ring() from ring resume, again
      drm/i915/gt: SPDX cleanup
      drm/i915/gt: Add some missing blank lines after declaration
      drm/i915/gt: Remove repeated words from comments
      drm/i915/gt: Fixup misaligned function parameters
      drm/i915/gt: Remove a bonus newline
      drm/i915/gt: Wrap macro arg in ()
      drm/i915/gt: Insert spaces into GEN3_L3LOG_SIZE/4
      drm/i915/gt: Replace unnecessary ',' with '; '
      drm/i915/gt: Add a space before '('
      drm/i915/gt: Replace 'return' with a fall-through
      drm/i915/selftests: Check for engine-reset errors in the middle of workarounds
      drm/i915/gt: Move the defer_request waiter active assertion
      drm/i915: Protect against request freeing during cancellation on wedging
      drm/i915/selftests: Use a single copy of the mocs table
      drm/i915/gt: Retire unexpected starting state error dumping
      drm/i915/selftests: Restore previous heartbeat interval
      drm/i915/gt: Double check heartbeat timeout before resetting
      drm/i915/selftest: Synchronise with the GPU timestamp
      drm/i915/gt: Always flush the submission queue on checking for idle

Emil Renner Berthing (1):
      drm/i915/gt: use new tasklet API for execution list

Imre Deak (1):
      drm/i915/dg1: Reserve first 1MB of local memory

Matthew Auld (11):
      drm/i915/gem: don't trust the dma_buf->size
      drm/i915/gem: consolidate 2big error checking for object sizes
      drm/i915/buddy: document the unused header bits
      drm/i915: make local-memory probing a GT operation
      drm/i915: setup the LMEM region
      drm/i915: allocate context from LMEM
      drm/i915: move engine scratch to LMEM
      drm/i915/gtt/dg1: add PTE_LM plumbing for ppGTT
      drm/i915/gtt/dg1: add PTE_LM plumbing for GGTT
      drm/i915: cleanup the region class/instance encoding
      drm/i915: give stolen system memory its own class

Michel Thierry (1):
      drm/i915: allocate cmd ring in lmem

Tvrtko Ursulin (1):
      drm/i915: Decrease number of subplatform bits

Zbigniew Kempczyński (1):
      drm/i915: Distinction of memory regions

 drivers/gpu/drm/i915/display/intel_display.c       |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |   3 +
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  26 ++++
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |  12 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |  16 +--
 .../drm/i915/gem/selftests/i915_gem_object_blt.c   |   4 +-
 drivers/gpu/drm/i915/gt/debugfs_gt.c               |   2 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.h               |   4 +-
 drivers/gpu/drm/i915/gt/gen6_renderstate.c         |  20 +--
 drivers/gpu/drm/i915/gt/gen7_renderstate.c         |  20 +--
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  13 +-
 drivers/gpu/drm/i915/gt/gen8_renderstate.c         |  20 +--
 drivers/gpu/drm/i915/gt/gen9_renderstate.c         |  20 +--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  23 +---
 drivers/gpu/drm/i915/gt/intel_context.c            |   3 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   3 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  35 +----
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |  26 ++--
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h   |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.h          |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c        |   3 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.h        |   3 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |  97 +++++---------
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |  26 +++-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |  23 +---
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h       |  21 +--
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  44 ++++++-
 drivers/gpu/drm/i915/gt/intel_gt.h                 |   1 +
 .../gpu/drm/i915/gt/intel_gt_buffer_pool_types.h   |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |   1 -
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.h             |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.h              |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_irq.c          |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm_irq.h          |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_requests.c        |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt_requests.h        |   3 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   5 +
 drivers/gpu/drm/i915/gt/intel_llc.c                |   3 +-
 drivers/gpu/drm/i915/gt/intel_llc.h                |   3 +-
 drivers/gpu/drm/i915/gt/intel_llc_types.h          |   3 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |   6 +-
 drivers/gpu/drm/i915/gt/intel_lrc_reg.h            |   5 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               |  21 +--
 drivers/gpu/drm/i915/gt/intel_mocs.h               |  22 +---
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   4 +
 drivers/gpu/drm/i915/gt/intel_rc6.c                |   4 +-
 drivers/gpu/drm/i915/gt/intel_rc6.h                |   3 +-
 drivers/gpu/drm/i915/gt/intel_rc6_types.h          |   3 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |  97 +++++++++++++-
 drivers/gpu/drm/i915/gt/intel_region_lmem.h        |   6 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |  27 +---
 drivers/gpu/drm/i915/gt/intel_renderstate.h        |  20 +--
 drivers/gpu/drm/i915/gt/intel_reset.c              |  18 +--
 drivers/gpu/drm/i915/gt/intel_reset.h              |   3 +-
 drivers/gpu/drm/i915/gt/intel_reset_types.h        |   2 +-
 drivers/gpu/drm/i915/gt/intel_ring.c               |   8 +-
 drivers/gpu/drm/i915/gt/intel_ring.h               |   4 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    | 146 +++++++++------------
 drivers/gpu/drm/i915/gt/intel_ring_types.h         |   3 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |   3 +-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   3 +-
 drivers/gpu/drm/i915/gt/intel_rps_types.h          |   3 +-
 drivers/gpu/drm/i915/gt/intel_sseu.c               |   3 +-
 drivers/gpu/drm/i915/gt/intel_sseu.h               |   3 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |   3 +-
 drivers/gpu/drm/i915/gt/intel_timeline.h           |  21 +--
 drivers/gpu/drm/i915/gt/intel_timeline_types.h     |   3 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  14 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.h        |   3 +-
 drivers/gpu/drm/i915/gt/intel_workarounds_types.h  |   3 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |  29 +---
 drivers/gpu/drm/i915/gt/mock_engine.h              |  21 +--
 drivers/gpu/drm/i915/gt/selftest_context.c         |   3 +-
 drivers/gpu/drm/i915/gt/selftest_engine.c          |   3 +-
 drivers/gpu/drm/i915/gt/selftest_engine.h          |   3 +-
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |   3 +-
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |  17 ++-
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |  11 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c       |  54 +++-----
 drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   4 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  21 +--
 drivers/gpu/drm/i915/gt/selftest_llc.c             |   3 +-
 drivers/gpu/drm/i915/gt/selftest_llc.h             |   3 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   1 -
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |  35 +++--
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |   3 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.h             |   3 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   3 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |  19 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  16 +--
 drivers/gpu/drm/i915/i915_buddy.c                  |   3 +
 drivers/gpu/drm/i915/i915_buddy.h                  |   7 +-
 drivers/gpu/drm/i915/i915_drv.c                    |   6 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   2 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   2 +-
 drivers/gpu/drm/i915/i915_priolist_types.h         |  11 +-
 drivers/gpu/drm/i915/i915_reg.h                    |   2 +
 drivers/gpu/drm/i915/i915_request.c                |   9 +-
 drivers/gpu/drm/i915/i915_request.h                |   2 +-
 drivers/gpu/drm/i915/i915_scheduler.c              |  52 +-------
 drivers/gpu/drm/i915/i915_scheduler.h              |  16 +--
 drivers/gpu/drm/i915/intel_device_info.c           |   2 +-
 drivers/gpu/drm/i915/intel_device_info.h           |   3 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |  54 +++++---
 drivers/gpu/drm/i915/intel_memory_region.h         |  22 ++--
 drivers/gpu/drm/i915/selftests/i915_buddy.c        |  48 +++++++
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  77 +++++++++++
 115 files changed, 735 insertions(+), 844 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-01-21 15:07 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-01-21 15:07 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Here is the final PR for v5.12.

One more fix for the clear residuals security mitigation.

Per-engine reset for Gen7 to avoid collateral damage when some
workloads misbehave, flip priority boosting when using explicit
fences (sync_file), improving suspend/freeze speed and avoiding
casual eviction of used framebuffers.

The rest is usual refactoring, cleanup and prep for upcoming
features.

Regards, Joonas

PS. There will be one warning due to duplicate Fixes: line (one pointing
to drm-intel-gt-next and other to drm-intel-fixes).

dim: ace44e13e577 ("drm/i915/gt: Clear CACHE_MODE prior to clearing residuals"): Fixes: SHA1 in not pointing at an ancestor:
dim:     09aa9e45863e ("drm/i915/gt: Restore clear-residual mitigations for Ivybridge, Baytrail")

I think it's fine to add in advance, assuming the -fixes has been pulled,
to avoid missing such patch. Otherwise the chance is that the tooling
misses picking the Fixes for Fixes which has happened in past.

***

drm-intel-gt-next-2021-01-21-1:

Cross-subsystem Changes:

- Includes gvt-gt-next-2021-01-18 + header check fix for GVT

Driver Changes:

- Fix for #2955: Clear potentially malicious register state before
  executing clear residuals security mitigation (Chris)
- Fixes that lead to marking per-engine-reset as supported on Gen7
  (Chris)
- Remove per-client stats from debugfs/i915_gem_objects) (Tvrtko, Chris)
- Add arbitration check before semaphore wait (Chris)
- Apply interactive priority to explicit flip fences (Chris)
- Make GEM errors non-fatal by default to help capturing logs during
  development (Chris)
- Fix object page offset within a region in error capture (CQ, Matt A)
- Close race between enable_breadcrumbs and cancel_breadcrumbs (Chris)
- Almagamate clflushes on suspend/freeze to speed up S/R (Chris)
- Protect used framebuffers from casual eviction (Chris)

- Fix the sgt.pfn sanity check (Kui, Matt A)
- Reduce locking around i915_request.lock and ctx->engines_mutex (Chris)
- Simplify tracking for engine->fw_active and stats.active (Chris)
- Constrain pool objects by mapping type (Chris, Matt A)
- Use shrinkable status for unknown swizzle quirks (Chris)
- Do not suspend bonded requests if one hangs (Chris)
- Restore "Skip over completed active execlists" optimization (Chris)

- Move stolen node into GEM object union (Chris)
. Split gem_create into own file (Matt A)
- Convert object_create into object_init in LMEM region code (Matt A)
- Reduce test_and_set_bit to set_bit in i915_request_submit() (Chris)
- Mark up protected uses of 'i915_request_completed' (Chris)
- Remove extraneous inline modifiers (Chris)
- Add function to define defaults for GuC/HuC enable (John)

- Improve code locality by moving closer to single user (Matt A, Chris)
- Compiler warning fixes (Matt A, Chris)
- Selftest / CI improvements (Chris)

The following changes since commit fb5cfcaa2efbb4c71abb1dfbc8f4da727e0bfd89:

  Merge tag 'drm-intel-gt-next-2021-01-14' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2021-01-15 15:03:36 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-01-21-1

for you to fetch changes up to 69b4b99842201bc24c98ba66b922d8879e190483:

  drm/i915/gvt: Add missing forward decl of intel_vgpu for HDRTEST (2021-01-21 15:51:21 +0200)

----------------------------------------------------------------
Cross-subsystem Changes:

- Includes gvt-gt-next-2021-01-18 + header check fix for GVT

Driver Changes:

- Fix for #2955: Clear potentially malicious register state before
  executing clear residuals security mitigation (Chris)
- Fixes that lead to marking per-engine-reset as supported on Gen7
  (Chris)
- Remove per-client stats from debugfs/i915_gem_objects) (Tvrtko, Chris)
- Add arbitration check before semaphore wait (Chris)
- Apply interactive priority to explicit flip fences (Chris)
- Make GEM errors non-fatal by default to help capturing logs during
  development (Chris)
- Fix object page offset within a region in error capture (CQ, Matt A)
- Close race between enable_breadcrumbs and cancel_breadcrumbs (Chris)
- Almagamate clflushes on suspend/freeze to speed up S/R (Chris)
- Protect used framebuffers from casual eviction (Chris)

- Fix the sgt.pfn sanity check (Kui, Matt A)
- Reduce locking around i915_request.lock and ctx->engines_mutex (Chris)
- Simplify tracking for engine->fw_active and stats.active (Chris)
- Constrain pool objects by mapping type (Chris, Matt A)
- Use shrinkable status for unknown swizzle quirks (Chris)
- Do not suspend bonded requests if one hangs (Chris)
- Restore "Skip over completed active execlists" optimization (Chris)

- Move stolen node into GEM object union (Chris)
. Split gem_create into own file (Matt A)
- Convert object_create into object_init in LMEM region code (Matt A)
- Reduce test_and_set_bit to set_bit in i915_request_submit() (Chris)
- Mark up protected uses of 'i915_request_completed' (Chris)
- Remove extraneous inline modifiers (Chris)
- Add function to define defaults for GuC/HuC enable (John)

- Improve code locality by moving closer to single user (Matt A, Chris)
- Compiler warning fixes (Matt A, Chris)
- Selftest / CI improvements (Chris)

----------------------------------------------------------------
CQ Tang (1):
      drm/i915/error: Fix object page offset within a region

Chris Wilson (34):
      drm/i915/gt: Reapply ppgtt enabling after engine resets
      drm/i915/gt: Prune 'inline' from execlists
      drm/i915/gt: Prune inlines
      drm/i915: Mark up protected uses of 'i915_request_completed'
      drm/i915: Drop i915_request.lock serialisation around await_start
      drm/i915/gem: Reduce ctx->engine_mutex for reading the clone source
      drm/i915/gem: Reduce ctx->engines_mutex for get_engines()
      drm/i915: Reduce test_and_set_bit to set_bit in i915_request_submit()
      drm/i915/gt: Drop atomic for engine->fw_active tracking
      drm/i915/gt: Extract busy-stats for ring-scheduler
      drm/i915/gt: Convert stats.active to plain unsigned int
      drm/i915/gt: Clear CACHE_MODE prior to clearing residuals
      drm/i915/gt: Add arbitration check before semaphore wait
      drm/i915: Add DEBUG_GEM to the recommended CI config
      drm/i915: Make GEM errors non-fatal by default
      drm/i915/gt: One more flush for Baytrail clear residuals
      drm/i915/selftests: Prepare the selftests for engine resets with ring submission
      drm/i915/gt: Lift stop_ring() to reset_prepare
      drm/i915/gt: Disable the ring before resetting HEAD/TAIL
      drm/i915/gt: Pull ring submission resume under its caller forcewake
      drm/i915: Mark per-engine-reset as supported on gen7
      drm/i915/gem: Remove per-client stats from debugfs/i915_gem_objects
      drm/i915/gem: Make i915_gem_object_flush_write_domain() static
      drm/i915/display: Apply interactive priority to explicit flip fences
      drm/i915/gt: Close race between enable_breadcrumbs and cancel_breadcrumbs
      drm/i915/gem: Almagamate clflushes on suspend
      drm/i915/gem: Almagamate clflushes on freeze
      drm/i915/gem: Move stolen node into GEM object union
      drm/i915/gem: Use shrinkable status for unknown swizzle quirks
      drm/i915/gem: Protect used framebuffers from casual eviction
      drm/i915/gem: Drop lru bumping on display unpinning
      drm/i915/gt: Do not suspend bonded requests if one hangs
      drm/i915/gt: Skip over completed active execlists, again
      drm/i915/gvt: Add missing forward decl of intel_vgpu for HDRTEST

John Harrison (1):
      drm/i915/uc: Add function to define defaults for GuC/HuC enable

Joonas Lahtinen (2):
      Merge drm/drm-next into drm-intel-gt-next
      Merge tag 'gvt-gt-next-2021-01-18' of https://github.com/intel/gvt-linux into drm-intel-gt-next

Kui Wen (1):
      drm/i915: Fix the sgt.pfn sanity check

Matthew Auld (7):
      drm/i915/gem: split gem_create into own file
      drm/i915/gem: sanity check object size in gem_create
      drm/i915/region: convert object_create into object_init
      drm/i915: add back static declaration
      drm/i915: move i915_map_type into i915_gem_object_types.h
      drm/i915/pool: constrain pool objects by mapping type
      drm/i915/region: don't leak the object on error

Yan Zhao (11):
      drm/i915/gvt: parse init context to update cmd accessible reg whitelist
      drm/i915/gvt: scan VM ctx pages
      drm/i915/gvt: filter cmds "srm" and "lrm" in cmd_handler
      drm/i915/gvt: filter cmds "lrr-src" and "lrr-dst" in cmd_handler
      drm/i915/gvt: filter cmd "pipe-ctrl" in cmd_handler
      drm/i915/gvt: export find_mmio_info
      drm/i915/gvt: make width of mmio_attribute bigger
      drm/i915/gvt: introduce a new flag F_CMD_WRITE_PATCH
      drm/i915/gvt: statically set F_CMD_WRITE_PATCH flag
      drm/i915/gvt: update F_CMD_WRITE_PATCH flag when parsing init ctx
      drm/i915/gvt: unify lri cmd handler and mmio handlers

 drivers/gpu/drm/i915/Kconfig.debug                 |  22 +-
 drivers/gpu/drm/i915/Makefile                      |   1 +
 drivers/gpu/drm/i915/display/intel_display.c       |  23 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c         |   4 +-
 drivers/gpu/drm/i915/display/intel_frontbuffer.c   |   4 +-
 drivers/gpu/drm/i915/display/intel_overlay.c       |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  65 ++--
 drivers/gpu/drm/i915/gem/i915_gem_create.c         | 113 +++++++
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         | 104 +++----
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  13 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c           |  15 +-
 drivers/gpu/drm/i915/gem/i915_gem_lmem.h           |   8 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |  47 ---
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  36 ++-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |   8 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |  41 +--
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |  16 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c          |  28 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  70 ++---
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   2 +
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |  12 +-
 drivers/gpu/drm/i915/gem/i915_gem_wait.c           |  46 ++-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  15 +-
 drivers/gpu/drm/i915/gt/gen7_renderclear.c         |  23 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |   4 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  13 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  13 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  16 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |  12 +-
 drivers/gpu/drm/i915/gt/intel_engine_stats.h       |  60 ++++
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   6 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   | 145 ++++-----
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |  12 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.h     |   3 +-
 .../gpu/drm/i915/gt/intel_gt_buffer_pool_types.h   |   4 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |   4 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               |   2 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   2 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   2 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   5 +-
 drivers/gpu/drm/i915/gt/intel_ring.c               |   2 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    | 209 ++++++-------
 drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |   4 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   2 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  18 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           |  11 +-
 drivers/gpu/drm/i915/gt/shmem_utils.c              |   2 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |  31 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |   7 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c              | 335 ++++++++++++++++-----
 drivers/gpu/drm/i915/gvt/cmd_parser.h              |   5 +
 drivers/gpu/drm/i915/gvt/gvt.h                     |  37 ++-
 drivers/gpu/drm/i915/gvt/handlers.c                |  15 +-
 drivers/gpu/drm/i915/gvt/mmio.h                    |   3 +
 drivers/gpu/drm/i915/gvt/reg.h                     |   2 +
 drivers/gpu/drm/i915/gvt/scheduler.c               |  22 +-
 drivers/gpu/drm/i915/gvt/vgpu.c                    |   4 +-
 drivers/gpu/drm/i915/i915_cmd_parser.c             |   2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                | 144 +--------
 drivers/gpu/drm/i915/i915_gem.c                    | 130 +-------
 drivers/gpu/drm/i915/i915_gem.h                    |   9 +-
 drivers/gpu/drm/i915/i915_gem_evict.c              |  13 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |   4 +-
 drivers/gpu/drm/i915/i915_mm.c                     |   2 +-
 drivers/gpu/drm/i915/i915_params.h                 |   1 +
 drivers/gpu/drm/i915/i915_pci.c                    |   5 +-
 drivers/gpu/drm/i915/i915_request.c                |  43 +--
 drivers/gpu/drm/i915/i915_scheduler.c              |   2 +-
 drivers/gpu/drm/i915/i915_vma.h                    |  15 +
 drivers/gpu/drm/i915/i915_vma_types.h              |   3 +
 drivers/gpu/drm/i915/intel_memory_region.h         |   8 +-
 drivers/gpu/drm/i915/selftests/i915_gem_evict.c    |  10 +-
 drivers/gpu/drm/i915/selftests/mock_region.c       |  19 +-
 78 files changed, 1191 insertions(+), 997 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_create.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_stats.h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2021-01-14 15:22 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2021-01-14 15:22 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Here is the first PR for v5.12. There are quite a few patches
accumulated after the holidays as usual:

Most importantly there are fixes to the clear residual security
mitigations to avoid GPU hangs caused by them. Further there is
option to allow the user to decide to disable such mitigations
similar to CPU side (i915.mitigations=auto,!residuals), if they
are an expert user and wish to do so. Of course, usual caveats
apply to disabling any security mitigations!

For Tigerlake, a fix to reduce the likelihood of DMAR errors when
IOMMU is enabled (MTBF bump from 10 secs to hours) and correction
to detecting the device stepping. Addition of W/As for DG1 and TGL.

Tuning the RPS algorithm further to limit to RPe on parking an
engine. Plenty of refactoring, cleanups and optimizing code in
preparation of upcoming series. The usual amount of selftest and
documentation fixes.

Then there are 3 other fixes for user reported/visible bugs;
GPU hang due to wrong MOCS caching for index used by HW, false
error message for case where GuC firmware doesn't load on first
instance of the retry-loop and supplementing the GuC firmware
table for Cometlake SKUs.

Fixes for pre-emption on Gen8-era devices. Build and runtime
fixes for 32-bit machines.

Regards, Joonas

PS. After you merge this, I will proceed to backmerge drm-next so
that we can have a common topic branches for din and dign as
requested by Jani and Rodrigo.

***

drm-intel-gt-next-2021-01-14:

UAPI Changes:
- Deprecate I915_PMU_LAST and optimize state tracking (Tvrtko)

  Avoid relying on last item ABI marker in i915_drm.h, add a
  comment to mark as deprecated.

Driver Changes:

- Restore clear residuals security mitigations for Ivybridge and
  Baytrail (Chris)
- Close #1858: Allow sysadmin to choose applied GPU security mitigations
  through i915.mitigations=... similar to CPU (Chris)
- Fix for #2024: GPU hangs on HSW GT1 (Chris)
- Fix for #2707: Driver hang when editing UVs in Blender (Chris, Ville)
- Fix for #2797: False positive GuC loading error message (Chris)
- Fix for #2859: Missing GuC firmware for older Cometlakes (Chris)
- Lessen probability of GPU hang due to DMAR faults [reason 7,
  next page table ptr is invalid] on Tigerlake (Chris)
- Fix REVID macros for TGL to fetch correct stepping (Aditya)
- Limit frequency drop to RPe on parking (Chris, Edward)
- Limit W/A 1406941453 to TGL, RKL and DG1 (Swathi)
- Make W/A 22010271021 permanent on DG1 (Lucas)
- Implement W/A 16011163337 to prevent a HS/DS hang on DG1 (Swathi)
- Only disable preemption on gen8 render engines (Chris)
- Disable arbitration around Braswell's PDP updates (Chris)
- Disable arbitration on no-preempt requests (Chris)
- Check for arbitration after writing start seqno before busywaiting (Chris)
- Retain default context state across shrinking (Venkata, CQ)
- Fix mismatch between misplaced vma check and vma insert for 32-bit
  addressing userspaces (Chris, CQ)
- Propagate error for vmap() failure instead kernel NULL deref (Chris)
- Propagate error from cancelled submit due to context closure
  immediately (Chris)
- Fix RCU race on HWSP tracking per request (Chris)
- Clear CMD parser shadow and GPU reloc batches (Matt A)

- Populate logical context during first pin (Maarten)
- Optimistically prune dma-resv from the shrinker (Chris)
- Fix for virtual engine ownership race (Chris)
- Remove timeslice suppression to restore fairness for virtual engines (Chris)
- Rearrange IVB/HSW workarounds properly between GT and engine (Chris)
- Taint the reset mutex with the shrinker (Chris)
- Replace direct submit with direct call to tasklet (Chris)
- Multiple corrections to virtual engine dequeue and breadcrumbs code (Chris)
- Avoid wakeref from potentially hard IRQ context in PMU (Tvrtko)
- Use raw clock for RC6 time estimation in PMU (Tvrtko)
- Differentiate OOM failures from invalid map types (Chris)
- Fix Gen9 to have 64 MOCS entries similar to Gen11 (Chris)
- Ignore repeated attempts to suspend request flow across reset (Chris)
- Remove livelock from "do_idle_maps" VT-d W/A (Chris)
- Cancel the preemption timeout early in case engine reset fails (Chris)
- Code flow optimization in the scheduling code (Chris)
- Clear the execlists timers upon reset (Chris)
- Drain the breadcrumbs just once (Chris, Matt A)
- Track the overall GT awake/busy time (Chris)
- Tweak submission tasklet flushing to avoid starvation (Chris)
- Track timelines created using the HWSP to restore on resume (Chris)
- Use cmpxchg64 for 32b compatilibity for active tracking (Chris)
- Prefer recycling an idle GGTT fence to avoid GPU wait (Chris)

- Restructure GT code organization for clearer split between GuC
  and execlists (Chris, Daniele, John, Matt A)
- Remove GuC code that will remain unused by new interfaces (Matt B)
- Restructure the CS timestamp clocks code to local to GT (Chris)
- Fix error return paths in perf code (Zhang)
- Replace idr_init() by idr_init_base() in perf (Deepak)
- Fix shmem_pin_map error path (Colin)
- Drop redundant free_work worker for GEM contexts (Chris, Mika)
- Increase readability and understandability of intel_workarounds.c (Lucas)
- Defer enabling the breadcrumb interrupt to after submission (Chris)
- Deal with buddy alloc block sizes beyond 4G (Venkata, Chris)
- Encode fence specific waitqueue behaviour into the wait.flags (Chris)
- Don't cancel the breadcrumb interrupt shadow too early (Chris)
- Cancel submitted requests upon context reset (Chris)
- Use correct locks in GuC code (Tvrtko)
- Prevent use of engine->wa_ctx after error (Chris, Matt R)

- Fix build warning on 32-bit (Arnd)
- Avoid memory leak if platform would have more than 16 W/A (Tvrtko)
- Avoid unnecessary #if CONFIG_PM in PMU code (Chris, Tvrtko)
- Improve debugging output (Chris, Tvrtko, Matt R)
- Make file local variables static (Jani)
- Avoid uint*_t types in i915 (Jani)
- Selftest improvements (Chris, Matt A, Dan)
- Documentation fixes (Chris, Jose)

The following changes since commit 31b05212360cbf3af3c2e1b7f42e176e0eebedb5:

  Merge branch 'linux-5.11' of git://github.com/skeggsb/linux into drm-next (2020-11-16 07:25:46 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-01-14

for you to fetch changes up to 368fd0d79c099493f2b8e80f2ffaa6f70dd0461a:

  drm/i915/selftests: fix the uint*_t types that have crept in (2021-01-14 11:52:07 +0200)

----------------------------------------------------------------
UAPI Changes:
- Deprecate I915_PMU_LAST and optimize state tracking (Tvrtko)

  Avoid relying on last item ABI marker in i915_drm.h, add a
  comment to mark as deprecated.

Cross-subsystem Changes:

Core Changes:

Driver Changes:

- Restore clear residuals security mitigations for Ivybridge and
  Baytrail (Chris)
- Close #1858: Allow sysadmin to choose applied GPU security mitigations
  through i915.mitigations=... similar to CPU (Chris)
- Fix for #2024: GPU hangs on HSW GT1 (Chris)
- Fix for #2707: Driver hang when editing UVs in Blender (Chris, Ville)
- Fix for #2797: False positive GuC loading error message (Chris)
- Fix for #2859: Missing GuC firmware for older Cometlakes (Chris)
- Lessen probability of GPU hang due to DMAR faults [reason 7,
  next page table ptr is invalid] on Tigerlake (Chris)
- Fix REVID macros for TGL to fetch correct stepping (Aditya)
- Limit frequency drop to RPe on parking (Chris, Edward)
- Limit W/A 1406941453 to TGL, RKL and DG1 (Swathi)
- Make W/A 22010271021 permanent on DG1 (Lucas)
- Implement W/A 16011163337 to prevent a HS/DS hang on DG1 (Swathi)
- Only disable preemption on gen8 render engines (Chris)
- Disable arbitration around Braswell's PDP updates (Chris)
- Disable arbitration on no-preempt requests (Chris)
- Check for arbitration after writing start seqno before busywaiting (Chris)
- Retain default context state across shrinking (Venkata, CQ)
- Fix mismatch between misplaced vma check and vma insert for 32-bit
  addressing userspaces (Chris, CQ)
- Propagate error for vmap() failure instead kernel NULL deref (Chris)
- Propagate error from cancelled submit due to context closure
  immediately (Chris)
- Fix RCU race on HWSP tracking per request (Chris)
- Clear CMD parser shadow and GPU reloc batches (Matt A)

- Populate logical context during first pin (Maarten)
- Optimistically prune dma-resv from the shrinker (Chris)
- Fix for virtual engine ownership race (Chris)
- Remove timeslice suppression to restore fairness for virtual engines (Chris)
- Rearrange IVB/HSW workarounds properly between GT and engine (Chris)
- Taint the reset mutex with the shrinker (Chris)
- Replace direct submit with direct call to tasklet (Chris)
- Multiple corrections to virtual engine dequeue and breadcrumbs code (Chris)
- Avoid wakeref from potentially hard IRQ context in PMU (Tvrtko)
- Use raw clock for RC6 time estimation in PMU (Tvrtko)
- Differentiate OOM failures from invalid map types (Chris)
- Fix Gen9 to have 64 MOCS entries similar to Gen11 (Chris)
- Ignore repeated attempts to suspend request flow across reset (Chris)
- Remove livelock from "do_idle_maps" VT-d W/A (Chris)
- Cancel the preemption timeout early in case engine reset fails (Chris)
- Code flow optimization in the scheduling code (Chris)
- Clear the execlists timers upon reset (Chris)
- Drain the breadcrumbs just once (Chris, Matt A)
- Track the overall GT awake/busy time (Chris)
- Tweak submission tasklet flushing to avoid starvation (Chris)
- Track timelines created using the HWSP to restore on resume (Chris)
- Use cmpxchg64 for 32b compatilibity for active tracking (Chris)
- Prefer recycling an idle GGTT fence to avoid GPU wait (Chris)

- Restructure GT code organization for clearer split between GuC
  and execlists (Chris, Daniele, John, Matt A)
- Remove GuC code that will remain unused by new interfaces (Matt B)
- Restructure the CS timestamp clocks code to local to GT (Chris)
- Fix error return paths in perf code (Zhang)
- Replace idr_init() by idr_init_base() in perf (Deepak)
- Fix shmem_pin_map error path (Colin)
- Drop redundant free_work worker for GEM contexts (Chris, Mika)
- Increase readability and understandability of intel_workarounds.c (Lucas)
- Defer enabling the breadcrumb interrupt to after submission (Chris)
- Deal with buddy alloc block sizes beyond 4G (Venkata, Chris)
- Encode fence specific waitqueue behaviour into the wait.flags (Chris)
- Don't cancel the breadcrumb interrupt shadow too early (Chris)
- Cancel submitted requests upon context reset (Chris)
- Use correct locks in GuC code (Tvrtko)
- Prevent use of engine->wa_ctx after error (Chris, Matt R)

- Fix build warning on 32-bit (Arnd)
- Avoid memory leak if platform would have more than 16 W/A (Tvrtko)
- Avoid unnecessary #if CONFIG_PM in PMU code (Chris, Tvrtko)
- Improve debugging output (Chris, Tvrtko, Matt R)
- Make file local variables static (Jani)
- Avoid uint*_t types in i915 (Jani)
- Selftest improvements (Chris, Matt A, Dan)
- Documentation fixes (Chris, Jose)

----------------------------------------------------------------
Aditya Swarup (2):
      drm/i915/tgl: Fix REVID macros for TGL to fetch correct stepping
      drm/i915/tgl: Add bound checks and simplify TGL REVID macros

Arnd Bergmann (1):
      drm/i915: fix shift warning

Chris Wilson (117):
      drm/i915/gt: Ignore dt==0 for reporting underflows
      drm/i915/gt: Remember to free the virtual breadcrumbs
      drm/i915/gvt: Remove incorrect kerneldoc marking
      drm/i915/gt: Include semaphore status in print_request()
      drm/i915: Lift i915_request_show()
      drm/i915/gt: Update request status flags for debug pretty-printer
      drm/i915/gt: Show all active timelines for debugging
      drm/i915: Lift waiter/signaler iterators
      drm/i915/gem: Remove incorrect early dbg print
      drm/i915/selftests: Improve granularity for mocs reset checks
      drm/i915/selftests: Small tweak to put the termination conditions together
      drm/i915/gt: Plug IPS into intel_rps_set
      drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission
      drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock
      drm/i915/gt: Don't cancel the interrupt shadow too early
      drm/i915/gt: Free stale request on destroying the virtual engine
      drm/i915/gt: Program mocs:63 for cache eviction on gen9
      drm/i915/gt: Decouple completed requests on unwind
      drm/i915/gt: Check for a completed last request once
      drm/i915/gt: Protect context lifetime with RCU
      drm/i915/gt: Split the breadcrumb spinlock between global and contexts
      drm/i915/gt: Move the breadcrumb to the signaler if completed upon cancel
      drm/i915/gt: Declare gen9 has 64 mocs entries!
      drm/i915/gt: Limit frequency drop to RPe on parking
      drm/i915/gem: Differentiate oom failures from invalid map types
      drm/i915/gem: Report error for vmap() failure
      drm/i915/selftests: Tidy prng constructor for client blits
      drm/i915/gem: Limit lmem scatterlist elements to UINT_MAX
      Revert "drm/i915/lmem: Limit block size to 4G"
      drm/i915/gem: Propagate error from cancelled submit due to context closure
      drm/i915/gt: Ignore repeated attempts to suspend request flow across reset
      drm/i915/gt: Cancel the preemption timeout on responding to it
      drm/i915/gt: Include reset failures in the trace
      drm/i915/gt: Clear the execlists timers upon reset
      drm/i915/selftests: Improve error reporting for igt_mock_max_segment
      drm/i915/gem: Drop false !i915_vma_is_closed assertion
      drm/i915: Remove livelock from "do_idle_maps" vtd w/a
      drm/i915: Sleep around performing iommu unmaps on Tigerlake
      drm/i915/gt: Remove uninterruptible parameter from intel_gt_wait_for_idle
      drm/i915/gt: Move move context layout registers and offsets to lrc_reg.h
      drm/i915/gt: Rename lrc.c to execlists_submission.c
      drm/i915/gt: Mark legacy ring context as lost
      drm/i915/gt: Wean workaround selftests off GEM context
      drm/i915: Fix mismatch between misplaced vma check and vma insert
      drm/i915/gem: Drop free_work for GEM contexts
      drm/i915/gt: Move gen8 CS emitters into gen8_engine_cs.h
      drm/i915: Encode fence specific waitqueue behaviour into the wait.flags
      drm/i915/gt: Drain the breadcrumbs just once
      drm/i915/gt: Track the overall awake/busy time
      drm/i915: Check for rq->hwsp validity after acquiring RCU lock
      drm/i915/gt: Another tweak for flushing the tasklets
      drm/i915/gt: Split logical ring contexts from execlist submission
      drm/i915/gt: Provide a utility to create a scratch buffer
      drm/i915/gt: Track all timelines created using the HWSP
      drm/i915/selftests: Kick timeslice until selftest yields
      drm/i915/selftests: Flush the preemption request before waiting
      drm/i915/selftests: Be paranoid and flush the tasklet before checking status
      drm/i915: Use cmpxchg64 for 32b compatilibity
      drm/i915/uc: Squelch load failure error message
      drm/i915/selftests: Remove redundant live_context for eviction
      drm/i915/selftests: Confirm CS_TIMESTAMP / CTX_TIMESTAMP share a clock
      drm/i915/gt: Consolidate the CS timestamp clocks
      drm/i915/gt: Prefer recycling an idle fence
      drm/i915/gem: Optimistically prune dma-resv from the shrinker.
      drm/i915/gt: Replace direct submit with direct call to tasklet
      drm/i915/gt: Use virtual_engine during execlists_dequeue
      drm/i915/gt: Decouple inflight virtual engines
      drm/i915/gt: Defer schedule_out until after the next dequeue
      drm/i915/gt: Remove virtual breadcrumb before transfer
      drm/i915/gt: Shrink the critical section for irq signaling
      drm/i915/gt: Resubmit the virtual engine on schedule-out
      drm/i915/gt: Simplify virtual engine handling for execlists_hold()
      drm/i915/gt: ce->inflight updates are now serialised
      drm/i915/gt: Refactor heartbeat request construction and submission
      drm/i915/gt: Define guc firmware blob for older Cometlakes
      drm/i915/gem: Peek at the inflight context
      drm/i915/gt: Taint the reset mutex with the shrinker
      drm/i915/gt: Cancel submitted requests upon context reset
      drm/i915/gt: Pull context closure check from request submit to schedule-in
      drm/i915: Drop i915_request.lock requirement for intel_rps_boost()
      drm/i915/gt: Rearrange snb workarounds
      drm/i915/gt: Rearrange hsw workarounds
      drm/i915/selftests: Guard against redifinition of SZ_8G
      drm/i915/selftests: Set error returns
      drm/i915: Set rawclk earlier during mmio probe
      drm/i915/gt: Allow failed resets without assertion
      drm/i915/gt: Check the virtual still matches upon locking
      drm/i915/selftests: Switch 4k kmalloc to use get_free_page for alignment
      drm/i915/selftests: Break out of the lrc layout test after register mismatch
      drm/i915/selftests: Improve handling of iomem around stolen
      drm/i915: Wrap our timer_list.expires checking
      drm/i915/gt: Remove timeslice suppression
      drm/i915/gt: Prevent use of engine->wa_ctx after error
      drm/i915/selftests: Skip unstable timing measurements
      drm/i915/selftests: Rearrange ktime_get to reduce latency against CS
      drm/i915/gt: Restore ce->signal flush before releasing virtual engine
      drm/i915/gt: Only retire on the last breadcrumb if the last request
      drm/i915/gt: Only disable preemption on gen8 render engines
      drm/i915/gt: Disable arbitration on no-preempt requests
      drm/i915/gt: Exercise lrc_wa_ctx initialisation failure
      drm/i915/gt: Remove unused function 'dword_in_page'
      drm/i915/gt: Mark up a debug-only function
      drm/i915: Refactor marking a request as EIO
      drm/i915/gt: Disable arbitration around Braswell's pdp updates
      drm/i915/selftests: Include engine name after reset failure
      drm/i915/gt: Limit VFE threads based on GT
      drm/i915/gt: Restore clear-residual mitigations for Ivybridge, Baytrail
      drm/i915: Allow the sysadmin to override security mitigations
      drm/i915/gem: Remove stolen node before releasing the region
      drm/i915/selftests: Allow huge_gem_object to kick the shrinker
      drm/i915/gt: Check for arbitration after writing start seqno
      drm/i915/gt: Perform an arbitration check before busywaiting
      drm/i915/selftests: Force a failed engine reset
      drm/i915/selftests: Bump the scheduling error threshold for fast heartbeats
      drm/i915/gt: Replace open-coded intel_engine_stop_cs()
      drm/i915/gt: Rearrange vlv workarounds
      drm/i915/gt: Rearrange ivb workarounds

Colin Ian King (1):
      drm/i915: fix size_t greater or equal to zero comparison

Dan Carpenter (2):
      drm/i915/gem: Check the correct variable in selftest
      drm/i915/selftests: Fix some error codes

Daniele Ceraolo Spurio (4):
      drm/i915: split gen8+ flush and bb_start emission functions
      drm/i915/guc: do not dump execlists state with GuC submission
      drm/i915/guc: init engine directly in GuC submission mode
      drm/i915/guc: stop calling execlists_set_default_submission

Deepak R Varma (1):
      drm/i915/perf: replace idr_init() by idr_init_base()

Jani Nikula (3):
      drm/i915/region: make intel_region_map static
      drm/i915/lmem: make intel_region_lmem_ops static
      drm/i915/selftests: fix the uint*_t types that have crept in

John Harrison (1):
      drm/i915: Correct location of Wa_1408615072

José Roberto de Souza (1):
      doc: Fix build of documentation after i915 file rename

Lucas De Marchi (7):
      drm/i915/dg1: make Wa_22010271021 permanent
      drm/i915: remove WA_SET_BIT_MASKED()
      drm/i915: remove WA_CLR_BIT_MASKED()
      drm/i915: remove WA_SET_FIELD_MASKED()
      drm/i915/gt: stop ignoring read with wa_masked_field_set
      drm/i915/gt: rename wa_write_masked_or()
      drm/i915/gt: document masked registers

Maarten Lankhorst (1):
      drm/i915: Populate logical context during first pin.

Matt Roper (1):
      drm/i915: Clarify error message on failed workaround

Matthew Auld (5):
      drm/i915/selftest: also consider non-contiguous objects
      drm/i915/selftest: assert we get 2M GTT pages
      drm/i915: clear the shadow batch
      drm/i915: clear the gpu reloc batch
      drm/i915: move region_lmem under gt

Matthew Brost (1):
      drm/i915/guc: Delete GuC code unused in future patches

Swathi Dhanavanthri (2):
      drm/i915/tgl, rkl, dg1: Apply WA_1406941453 to TGL, RKL and DG1
      drm/i915/dg1: Implement WA_16011163337

Tvrtko Ursulin (8):
      drm/i915: Avoid memory leak with more than 16 workarounds on a list
      drm/i915: Show timeline dependencies for debug
      drm/i915/guc: Use correct lock for accessing guc->mmio_msg
      drm/i915/guc: Use correct lock for CT event handler
      drm/i915/pmu: Deprecate I915_PMU_LAST and optimize state tracking
      drm/i915/pmu: Don't grab wakeref when enabling events
      drm/i915/pmu: Use raw clock for rc6 estimation
      drm/i915/pmu: Remove !CONFIG_PM code

Venkata Ramana Nayana (1):
      drm/i915/gt: Retain default context state across shrinking

Venkata Sandeep Dhanalakota (1):
      drm/i915/lmem: Limit block size to 4G

Zhang Xiaoxu (2):
      drm/i915/selftests: Fix wrong return value of perf_series_engines()
      drm/i915/selftests: Fix wrong return value of perf_request_latency()

 Documentation/gpu/i915.rst                         |    2 +-
 drivers/gpu/drm/i915/Makefile                      |    6 +-
 drivers/gpu/drm/i915/display/intel_overlay.c       |    1 +
 drivers/gpu/drm/i915/dma_resv_utils.c              |   17 +
 drivers/gpu/drm/i915/dma_resv_utils.h              |   13 +
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |   67 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.h        |    1 -
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |    1 -
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   24 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |    1 +
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |   32 +-
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |   36 +-
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |    3 +
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |    5 +-
 drivers/gpu/drm/i915/gem/i915_gem_wait.c           |    8 +-
 .../gpu/drm/i915/gem/selftests/huge_gem_object.c   |    2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |   22 +
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |    4 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |    1 +
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |    1 +
 drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c |    1 +
 drivers/gpu/drm/i915/gt/debugfs_gt_pm.c            |   27 +-
 drivers/gpu/drm/i915/gt/gen7_renderclear.c         |  157 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |  633 ++
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |  127 +
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  365 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h        |   17 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   15 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   15 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   11 +-
 drivers/gpu/drm/i915/gt/intel_context_sseu.c       |    1 -
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   48 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   93 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  151 +-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |   59 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   10 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   16 +-
 .../gpu/drm/i915/gt/intel_execlists_submission.c   | 3929 +++++++++++
 .../gpu/drm/i915/gt/intel_execlists_submission.h   |   47 +
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   18 +-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c       |   22 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |    4 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c     |  197 +-
 drivers/gpu/drm/i915/gt/intel_gt_clock_utils.h     |    8 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |    1 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |   49 +
 drivers/gpu/drm/i915/gt/intel_gt_pm.h              |    2 +
 drivers/gpu/drm/i915/gt/intel_gt_requests.c        |    7 +-
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   25 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   29 +
 drivers/gpu/drm/i915/gt/intel_gtt.h                |    3 +
 drivers/gpu/drm/i915/gt/intel_lrc.c                | 6798 ++++----------------
 drivers/gpu/drm/i915/gt/intel_lrc.h                |  167 +-
 drivers/gpu/drm/i915/gt/intel_lrc_reg.h            |   41 +
 drivers/gpu/drm/i915/gt/intel_mocs.c               |   25 +-
 drivers/gpu/drm/i915/{ => gt}/intel_region_lmem.c  |    2 +-
 drivers/gpu/drm/i915/{ => gt}/intel_region_lmem.h  |    2 -
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |    3 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   96 +-
 drivers/gpu/drm/i915/gt/intel_reset.h              |    2 +
 drivers/gpu/drm/i915/gt/intel_ring.c               |    2 +
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   73 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |   63 +-
 drivers/gpu/drm/i915/gt/intel_rps_types.h          |    2 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |  109 +-
 drivers/gpu/drm/i915/gt/intel_timeline.h           |   25 +-
 drivers/gpu/drm/i915/gt/intel_timeline_types.h     |    2 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |  648 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |   15 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |    2 +-
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |    1 +
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |   13 +-
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c       |  203 +
 drivers/gpu/drm/i915/gt/selftest_execlists.c       | 4741 ++++++++++++++
 drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |    8 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       |  157 +-
 drivers/gpu/drm/i915/gt/selftest_lrc.c             | 4771 +-------------
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |   80 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |    1 +
 drivers/gpu/drm/i915/gt/selftest_reset.c           |   19 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |    5 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   14 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |  196 +-
 drivers/gpu/drm/i915/gt/shmem_utils.c              |    9 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |   16 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |    7 -
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |    1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |   13 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  457 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |    1 +
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |   23 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |    1 +
 drivers/gpu/drm/i915/gvt/cmd_parser.c              |    1 +
 drivers/gpu/drm/i915/gvt/handlers.c                |    2 +-
 drivers/gpu/drm/i915/gvt/mmio_context.c            |    1 +
 drivers/gpu/drm/i915/gvt/mmio_context.h            |    2 +
 drivers/gpu/drm/i915/gvt/scheduler.c               |    2 +
 drivers/gpu/drm/i915/i915_active.c                 |    7 +-
 drivers/gpu/drm/i915/i915_cmd_parser.c             |   28 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |   39 +-
 drivers/gpu/drm/i915/i915_drv.c                    |    3 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   54 +-
 drivers/gpu/drm/i915/i915_gem.c                    |    2 -
 drivers/gpu/drm/i915/i915_gem_gtt.c                |   25 +-
 drivers/gpu/drm/i915/i915_getparam.c               |    2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |    2 +-
 drivers/gpu/drm/i915/i915_mitigations.c            |  146 +
 drivers/gpu/drm/i915/i915_mitigations.h            |   13 +
 drivers/gpu/drm/i915/i915_pci.c                    |    2 -
 drivers/gpu/drm/i915/i915_perf.c                   |   17 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |  117 +-
 drivers/gpu/drm/i915/i915_pmu.h                    |   35 +-
 drivers/gpu/drm/i915/i915_request.c                |  139 +-
 drivers/gpu/drm/i915/i915_request.h                |   49 +-
 drivers/gpu/drm/i915/i915_scheduler.c              |   32 +-
 drivers/gpu/drm/i915/i915_scheduler.h              |    7 +
 drivers/gpu/drm/i915/i915_scheduler_types.h        |   10 +
 drivers/gpu/drm/i915/i915_sw_fence.c               |   25 +-
 drivers/gpu/drm/i915/i915_utils.c                  |    2 +-
 drivers/gpu/drm/i915/i915_utils.h                  |    7 +-
 drivers/gpu/drm/i915/intel_device_info.c           |  157 -
 drivers/gpu/drm/i915/intel_device_info.h           |    4 -
 drivers/gpu/drm/i915/intel_memory_region.c         |    2 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |    5 -
 drivers/gpu/drm/i915/selftests/i915_gem.c          |    4 +-
 drivers/gpu/drm/i915/selftests/i915_gem_evict.c    |   18 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |    1 +
 drivers/gpu/drm/i915/selftests/i915_perf.c         |    2 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |   17 +-
 drivers/gpu/drm/i915/selftests/igt_spinner.c       |    4 +
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  110 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |    2 -
 include/uapi/drm/i915_drm.h                        |    3 +-
 133 files changed, 13896 insertions(+), 12352 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/dma_resv_utils.c
 create mode 100644 drivers/gpu/drm/i915/dma_resv_utils.h
 create mode 100644 drivers/gpu/drm/i915/gt/gen8_engine_cs.c
 create mode 100644 drivers/gpu/drm/i915/gt/gen8_engine_cs.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_execlists_submission.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_execlists_submission.h
 rename drivers/gpu/drm/i915/{ => gt}/intel_region_lmem.c (97%)
 rename drivers/gpu/drm/i915/{ => gt}/intel_region_lmem.h (80%)
 create mode 100644 drivers/gpu/drm/i915/gt/selftest_execlists.c
 create mode 100644 drivers/gpu/drm/i915/i915_mitigations.c
 create mode 100644 drivers/gpu/drm/i915/i915_mitigations.h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2020-11-12 16:34 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2020-11-12 16:34 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Here goes the drm-intel-gt-next PR for 5.11.

Most importantly there is a healthy chunk of Tigerlake
related fixes and a fix for user reported issue #2381 where
graphics output would stop at "switching to inteldrmfb from
simple".

Fixes to DMA mapped sg usage in i915 to unblock intel iommu
rework. Fixes to previously introduced WW mutex rework.

We're enabling eLLC for displayable buffers on SKL+. Plenty
of fixes to driver unbind/bind cycle. The GuC firmware
version is being updated (that just loads HuC for now).

The usual amount of fixes for CI found corner cases.

Expect a few conflicts with drm-intel-next (resolved in rerere)
as the platform enabling ones go there. I'll backmerge drm-next
once you've accepted this to pull all the changes to gt-next.

The -next-fixes and -fixes would come from Jani after this is
accepted, too.

Regards, Joonas

***

drm-intel-gt-next-2020-11-12-1:

Cross-subsystem Changes:
- DMA mapped scatterlist fixes in i915 to unblock merging of
  https://lkml.org/lkml/2020/9/27/70 (Tvrtko, Tom)

Driver Changes:

- Fix for user reported issue #2381 (Graphical output stops with "switching to inteldrmfb from simple"):
  Mark ininitial fb obj as WT on eLLC machines to avoid rcu lockup during fbdev init (Ville, Chris)
- Fix for Tigerlake (and earlier) to avoid spurious empty CSB events leading to hang (Chris, Bruce)
- Delay execlist processing for Tigerlake to avoid hang (Chris)
- Fix for Tigerlake RCS engine health check through heartbeat (Chris)
- Fix for Tigerlake reserved MOCS entries (Ayaz, Chris)
- Fix Media power gate sequence on Tigerlake (Rodrigo)
- Enable eLLC caching of display buffers for SKL+ (Ville)
- Support parsing of oversize batches on Gen9 (Matt, Chris)
- Exclude low pages (128KiB) of stolen from use to avoid thrashing during reset (Chris)
- Flush engines before Tigerlake breadcrumbs (Chris)

- Use the local HWSP offset during submission (Chris)
- Flush coherency domains on first set-domain-ioctl (Chris, Zbigniew)
- Use the active reference on the vma while capturing to avoid use-after-free (Chris)
- Fix MOCS PTE setting for gen9+ (Ville)
- Avoid NULL dereference on IPS driver callback while unbinding i915 (Chris)
- Avoid NULL dereference from PT/PD stash allocation error (Matt)
- Hold request reference for canceling an active context (Chris)
- Avoid infinite loop on x86-32 when mapping a lot of objects (Chris)
- Disallow WC mappings when processor doesn't support them (Chris)
- Return correct error in i915_gem_object_copy_blt() error path (Dan)
- Return correct error in intel_context_create_request() error path (Maarten)
- Tune down GuC communication enabled/disabled messages to debug (Jani)
- Fix rebased commit "Remove i915_request.lock requirement for execution callbacks" (Chris)
- Cancel outstanding work after disabling heartbeats on an engine (Chris)
- Signal cancelled requests (Chris)
- Retire cancelled requests on unload (Chris)
- Scrub HW state on driver remove (Chris)
- Undo forced context restores after trivial preemptions (Chris)
- Handle PCI unbind in PMU code (Tvrtko)
- Fix CPU hotplug with multiple GPUs in PMU code (Trtkko)
- Correctly set SFC capability for video engines (Venkata)

- Update GuC code to use firmware v49.0.1 (John, Matthew B., Daniele, Oscar, Michel, Rodrigo, Michal)
- Improve GuC warnings on loading failure (John)
- Avoid ownership race in buffer pool by clearing age (Chris)
- Use MMIO to read CSB in case of failure (Chris, Mika)
- Show engine properties in engine state dump to indicate changes (Chris, Joonas)
- Break up error capture compression loops with cond_resched() (Chris)
- Reduce GPU error capture mutex hold time to avoid khungtaskd (Chris)
- Serialise debugfs i915_gem_objects with ctx->mutex (Chris)
- Always test execution status on closing the context and close if not persistent (Chris)
- Avoid mixing integer types during batch copies (Chris, Jared)
- Skip over MI_NOOP when parsing to avoid overhead (Chris)
- Hold onto an explicit ref to i915_vma_work.pinned (Chris)
- Perform all asynchronous waits prior to marking payload start (Chris)
- Pull phys pread/pwrite implementations to the backend (Matt)

- Improve record of hung engines in error state (Tvrtko)
- Allow backends to override pread implementation (Matt)
- Reinforce LRC poisoning checks to confirm context survives execution (Chris)
- Fix memory region max size calculation (Matt)
- Fix order when adding blocks to memory region (Matt)
- Eliminate unused intel_virtual_engine_get_sibling func (Chris)
- Cleanup kasan warning for on-stack (unsigned long) casting (Chris)
- Onion unwind for scratch page allocation failure (Chris)
- Poison stolen pages before use (Chris)
- Selftest improvements (Chris)
The following changes since commit e0ee152fce25dc9269c7ea5280c98aa4b3682759:

  drm/i915: Unlock the shared hwsp_gtt object after pinning (2020-09-07 15:08:11 +0300)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2020-11-12-1

for you to fetch changes up to 695dc55b573985569259e18f8e6261a77924342b:

  drm/i915/tgl: Fix Media power gate sequence. (2020-11-11 15:07:10 +0000)

----------------------------------------------------------------
Cross-subsystem Changes:
- DMA mapped scatterlist fixes in i915 to unblock merging of
  https://lkml.org/lkml/2020/9/27/70 (Tvrtko, Tom)

Driver Changes:

- Fix for user reported issue #2381 (Graphical output stops with "switching to inteldrmfb from simple"):
  Mark ininitial fb obj as WT on eLLC machines to avoid rcu lockup during fbdev init (Ville, Chris)
- Fix for Tigerlake (and earlier) to avoid spurious empty CSB events leading to hang (Chris, Bruce)
- Delay execlist processing for Tigerlake to avoid hang (Chris)
- Fix for Tigerlake RCS engine health check through heartbeat (Chris)
- Fix for Tigerlake reserved MOCS entries (Ayaz, Chris)
- Fix Media power gate sequence on Tigerlake (Rodrigo)
- Enable eLLC caching of display buffers for SKL+ (Ville)
- Support parsing of oversize batches on Gen9 (Matt, Chris)
- Exclude low pages (128KiB) of stolen from use to avoid thrashing during reset (Chris)
- Flush engines before Tigerlake breadcrumbs (Chris)

- Use the local HWSP offset during submission (Chris)
- Flush coherency domains on first set-domain-ioctl (Chris, Zbigniew)
- Use the active reference on the vma while capturing to avoid use-after-free (Chris)
- Fix MOCS PTE setting for gen9+ (Ville)
- Avoid NULL dereference on IPS driver callback while unbinding i915 (Chris)
- Avoid NULL dereference from PT/PD stash allocation error (Matt)
- Hold request reference for canceling an active context (Chris)
- Avoid infinite loop on x86-32 when mapping a lot of objects (Chris)
- Disallow WC mappings when processor doesn't support them (Chris)
- Return correct error in i915_gem_object_copy_blt() error path (Dan)
- Return correct error in intel_context_create_request() error path (Maarten)
- Tune down GuC communication enabled/disabled messages to debug (Jani)
- Fix rebased commit "Remove i915_request.lock requirement for execution callbacks" (Chris)
- Cancel outstanding work after disabling heartbeats on an engine (Chris)
- Signal cancelled requests (Chris)
- Retire cancelled requests on unload (Chris)
- Scrub HW state on driver remove (Chris)
- Undo forced context restores after trivial preemptions (Chris)
- Handle PCI unbind in PMU code (Tvrtko)
- Fix CPU hotplug with multiple GPUs in PMU code (Trtkko)
- Correctly set SFC capability for video engines (Venkata)

- Update GuC code to use firmware v49.0.1 (John, Matthew B., Daniele, Oscar, Michel, Rodrigo, Michal)
- Improve GuC warnings on loading failure (John)
- Avoid ownership race in buffer pool by clearing age (Chris)
- Use MMIO to read CSB in case of failure (Chris, Mika)
- Show engine properties in engine state dump to indicate changes (Chris, Joonas)
- Break up error capture compression loops with cond_resched() (Chris)
- Reduce GPU error capture mutex hold time to avoid khungtaskd (Chris)
- Serialise debugfs i915_gem_objects with ctx->mutex (Chris)
- Always test execution status on closing the context and close if not persistent (Chris)
- Avoid mixing integer types during batch copies (Chris, Jared)
- Skip over MI_NOOP when parsing to avoid overhead (Chris)
- Hold onto an explicit ref to i915_vma_work.pinned (Chris)
- Perform all asynchronous waits prior to marking payload start (Chris)
- Pull phys pread/pwrite implementations to the backend (Matt)

- Improve record of hung engines in error state (Tvrtko)
- Allow backends to override pread implementation (Matt)
- Reinforce LRC poisoning checks to confirm context survives execution (Chris)
- Fix memory region max size calculation (Matt)
- Fix order when adding blocks to memory region (Matt)
- Eliminate unused intel_virtual_engine_get_sibling func (Chris)
- Cleanup kasan warning for on-stack (unsigned long) casting (Chris)
- Onion unwind for scratch page allocation failure (Chris)
- Poison stolen pages before use (Chris)
- Selftest improvements (Chris)

----------------------------------------------------------------
Ayaz A Siddiqui (1):
      drm/i915/gt: Initialize reserved and unspecified MOCS indices

Chris Wilson (46):
      drm/i915/gem: Avoid implicit vmap for highmem on x86-32
      drm/i915/gem: Prevent using pgprot_writecombine() if PAT is not supported
      drm/i915/gt: Clear the buffer pool age before use
      drm/i915/gt: Check for a registered driver with IPS
      drm/i915/gt: Widen CSB pointer to u64 for the parsers
      drm/i915/gt: Wait for CSB entries on Tigerlake
      drm/i915/gt: Apply the CSB w/a for all
      drm/i915/gt: Use a mmio read of the CSB in case of failure
      drm/i915/gt: Show engine properties in the pretty printer
      drm/i915: Break up error capture compression loops with cond_resched()
      drm/i915: Reduce GPU error capture mutex hold time
      drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()
      drm/i915/gem: Serialise debugfs i915_gem_objects with ctx->mutex
      drm/i915: Redo "Remove i915_request.lock requirement for execution callbacks"
      drm/i915/gem: Hold request reference for canceling an active context
      drm/i915: Cancel outstanding work after disabling heartbeats on an engine
      drm/i915/gt: Always send a pulse down the engine after disabling heartbeat
      drm/i915/gem: Always test execution status on closing the context
      drm/i915: Avoid mixing integer types during batch copies
      drm/i915/gt: Signal cancelled requests
      drm/i915/selftests: Finish pending mock requests on cancellation.
      drm/i915/gt: Retire cancelled requests on unload
      drm/i915: Skip over MI_NOOP when parsing
      drm/i915/gt: Scrub HW state on remove
      drm/i915/gt: Track the most recent pulse for the heartbeat
      drm/i915/gt: Fixup tgl mocs for PTE tracking
      drm/i915/gem: Support parsing of oversize batches
      drm/i915/gt: Delay execlist processing for tgl
      drm/i915/gt: Undo forced context restores after trivial preemptions
      drm/i915/gt: Cleanup kasan warning for on-stack (unsigned long) casting
      drm/i915/gt: Confirm the context survives execution
      drm/i915: Use the active reference on the vma while capturing
      drm/i915/gt: Onion unwind for scratch page allocation failure
      drm/i915/gem: Poison stolen pages before use
      drm/i915: Exclude low pages (128KiB) of stolen from use
      drm/i915/selftests: Flush the old heartbeat more gently
      drm/i915/gem: Flush coherency domains on first set-domain-ioctl
      drm/i915/selftests: Skip RPS tests on Ironlake (only IPS)
      drm/i915/gt: Use the local HWSP offset during submission
      drm/i915/selftests: Exercise intel_timeline_read_hwsp()
      drm/i915/gem: Avoid synchronous binds deep within locks
      drm/i915/gt: Expose more parameters for emitting writes into the ring
      drm/i915/gt: Flush xcs before tgl breadcrumbs
      drm/i915: Hold onto an explicit ref to i915_vma_work.pinned
      drm/i915/gem: Perform all asynchronous waits prior to marking payload start
      drm/i915/gem: Pull phys pread/pwrite implementations to the backend

Dan Carpenter (1):
      drm/i915: Fix an error code i915_gem_object_copy_blt()

Jani Nikula (1):
      drm/i915/uc: tune down GuC communication enabled/disabled messages

John Harrison (3):
      drm/i915/guc: Update to use firmware v49.0.1
      drm/i915/guc: Improved reporting when GuC fails to load
      drm/i915/guc: Clear pointers on free

Maarten Lankhorst (1):
      drm/i915: Fix uninitialised variable in intel_context_create_request.

Matthew Auld (4):
      drm/i915: check i915_vm_alloc_pt_stash for errors
      drm/i915/region: fix max size calculation
      drm/i915/gem: Allow backends to override pread implementation
      drm/i915/region: fix order when adding blocks

Rodrigo Vivi (1):
      drm/i915/tgl: Fix Media power gate sequence.

Tvrtko Ursulin (6):
      drm/i915: Fix DMA mapped scatterlist walks
      drm/i915: Fix DMA mapped scatterlist lookup
      drm/i915/pmu: Handle PCI unbind
      drm/i915/pmu: Fix CPU hotplug with multiple GPUs
      drm/i915: Improve record of hung engines in error state
      drm/i915: Use ABI engine class in error state ecode

Venkata Sandeep Dhanalakota (1):
      drm/i915: Correctly set SFC capability for video engines

Ville Syrjälä (3):
      drm/i915: Mark ininitial fb obj as WT on eLLC machines to avoid rcu lockup during fbdev init
      drm/i915: Fix MOCS PTE setting for gen9+
      drm/i915: Enable eLLC caching of display buffers for SKL+

 drivers/gpu/drm/i915/Kconfig.debug                 |   1 +
 drivers/gpu/drm/i915/display/intel_display.c       |   8 +
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |  18 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  73 ++--
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |  28 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  17 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |   2 +
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  20 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  51 ++-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |  55 +++
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  54 ++-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   2 +
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  24 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  20 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   1 +
 drivers/gpu/drm/i915/gt/intel_engine.h             |  64 ++--
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  42 ++-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   | 112 +++---
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |  37 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   4 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  11 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   2 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  10 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   2 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                | 162 ++++++---
 drivers/gpu/drm/i915/gt/intel_lrc.h                |   4 -
 drivers/gpu/drm/i915/gt/intel_lrc_reg.h            |   3 +
 drivers/gpu/drm/i915/gt/intel_mocs.c               |  21 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |  22 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   4 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   1 +
 drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |  18 +-
 drivers/gpu/drm/i915/gt/intel_timeline_types.h     |   2 +
 drivers/gpu/drm/i915/gt/mock_engine.c              |  29 +-
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |  13 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           | 196 +++++++++++
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   8 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        | 378 ++++++++++++++++++++-
 drivers/gpu/drm/i915/gt/sysfs_engines.c            |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  18 -
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         | 132 +++++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  31 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  80 +++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |   5 +
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  27 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   2 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h       |   6 +-
 drivers/gpu/drm/i915/i915_cmd_parser.c             |  77 +++--
 drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   7 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  32 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  74 ++--
 drivers/gpu/drm/i915/i915_gpu_error.h              |  10 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   7 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |  96 ++++--
 drivers/gpu/drm/i915/i915_pmu.h                    |  10 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  12 +-
 drivers/gpu/drm/i915/i915_request.c                |  17 +-
 drivers/gpu/drm/i915/i915_scatterlist.h            |  17 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  14 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |   4 +-
 drivers/gpu/drm/i915/intel_pm.c                    |  13 -
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  77 +++++
 drivers/gpu/drm/i915/selftests/mock_region.c       |   2 +-
 70 files changed, 1759 insertions(+), 576 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2020-09-07 13:00 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2020-09-07 13:00 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Exactly same content as previous PR:

https://lists.freedesktop.org/archives/intel-gfx/2020-September/247626.html

Just rebased adding the missing S-o-b:s and updated "Fixes:" tags accordingly
as requested.

Regards, Joonas

***

drm-intel-gt-next-2020-09-07:

(Same content as drm-intel-gt-next-2020-09-04-3, S-o-b's added)

UAPI Changes:
(- Potential implicit changes from WW locking refactoring)

Cross-subsystem Changes:
(- WW locking changes should align the i915 locking more with others)

Driver Changes:

- MAJOR: Apply WW locking across the driver (Maarten)

- Reverts for 5 commits to make applying WW locking faster (Maarten)
- Disable preparser around invalidations on Tigerlake for non-RCS engines (Chris)
- Add missing dma_fence_put() for error case of syncobj timeline (Chris)
- Parse command buffer earlier in eb_relocate(slow) to facilitate backoff (Maarten)
- Pin engine before pinning all objects (Maarten)
- Rework intel_context pinning to do everything outside of pin_mutex (Maarten)

- Avoid tracking GEM context until registered (Cc: stable, Chris)
- Provide a fastpath for waiting on vma bindings (Chris)
- Fixes to preempt-to-busy mechanism (Chris)
- Distinguish the virtual breadcrumbs from the irq breadcrumbs (Chris)
- Switch to object allocations for page directories (Chris)
- Hold context/request reference while breadcrumbs are active (Chris)
- Make sure execbuffer always passes ww state to i915_vma_pin (Maarten)

- Code refactoring to facilitate use of WW locking (Maarten)
- Locking refactoring to use more granular locking (Maarten, Chris)
- Support for multiple pinned timelines per engine (Chris)
- Move complication of I915_GEM_THROTTLE to the ioctl from general code (Chris)
- Make active tracking/vma page-directory stash work preallocated (Chris)
- Avoid flushing submission tasklet too often (Chris)
- Reduce context termination list iteration guard to RCU (Chris)
- Reductions to locking contention (Chris)
- Fixes for issues found by CI (Chris)
The following changes since commit 3393649977f9a8847c659e282ea290d4b703295c:

  Merge tag 'drm-intel-next-2020-08-24-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2020-08-28 14:09:31 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2020-09-07

for you to fetch changes up to e0ee152fce25dc9269c7ea5280c98aa4b3682759:

  drm/i915: Unlock the shared hwsp_gtt object after pinning (2020-09-07 15:08:11 +0300)

----------------------------------------------------------------
(Same content as drm-intel-gt-next-2020-09-04-3, S-o-b's added)

UAPI Changes:
(- Potential implicit changes from WW locking refactoring)

Cross-subsystem Changes:
(- WW locking changes should align the i915 locking more with others)

Driver Changes:

- MAJOR: Apply WW locking across the driver (Maarten)

- Reverts for 5 commits to make applying WW locking faster (Maarten)
- Disable preparser around invalidations on Tigerlake for non-RCS engines (Chris)
- Add missing dma_fence_put() for error case of syncobj timeline (Chris)
- Parse command buffer earlier in eb_relocate(slow) to facilitate backoff (Maarten)
- Pin engine before pinning all objects (Maarten)
- Rework intel_context pinning to do everything outside of pin_mutex (Maarten)

- Avoid tracking GEM context until registered (Cc: stable, Chris)
- Provide a fastpath for waiting on vma bindings (Chris)
- Fixes to preempt-to-busy mechanism (Chris)
- Distinguish the virtual breadcrumbs from the irq breadcrumbs (Chris)
- Switch to object allocations for page directories (Chris)
- Hold context/request reference while breadcrumbs are active (Chris)
- Make sure execbuffer always passes ww state to i915_vma_pin (Maarten)

- Code refactoring to facilitate use of WW locking (Maarten)
- Locking refactoring to use more granular locking (Maarten, Chris)
- Support for multiple pinned timelines per engine (Chris)
- Move complication of I915_GEM_THROTTLE to the ioctl from general code (Chris)
- Make active tracking/vma page-directory stash work preallocated (Chris)
- Avoid flushing submission tasklet too often (Chris)
- Reduce context termination list iteration guard to RCU (Chris)
- Reductions to locking contention (Chris)
- Fixes for issues found by CI (Chris)

----------------------------------------------------------------
Chris Wilson (33):
      drm/i915: Reduce i915_request.lock contention for i915_request_wait
      drm/i915/selftests: Mock the status_page.vma for the kernel_context
      drm/i915: Soften the tasklet flush frequency before waits
      drm/i915/gem: Remove disordered per-file request list for throttling
      drm/i915/gt: Disable preparser around xcs invalidations on tgl
      drm/i915/gt: Delay taking the spinlock for grabbing from the buffer pool
      drm/i915/selftests: Flush the active barriers before asserting
      drm/i915/gt: Fix termination condition for freeing all buffer objects
      drm/i915/gem: Delay tracking the GEM context until it is registered
      drm/i915/gt: Support multiple pinned timelines
      drm/i915/gt: Pull release of node->age under the spinlock
      drm/i915/selftests: Drop stale timeline constructor assert
      drm/i915: Skip taking acquire mutex for no ref->active callback
      drm/i915: Export a preallocate variant of i915_active_acquire()
      drm/i915: Keep the most recently used active-fence upon discard
      drm/i915: Make the stale cached active node available for any timeline
      drm/i915: Reduce locking around i915_active_acquire_preallocate_barrier()
      drm/i915: Provide a fastpath for waiting on vma bindings
      drm/i915: Remove requirement for holding i915_request.lock for breadcrumbs
      drm/i915/gt: Replace intel_engine_transfer_stale_breadcrumbs
      drm/i915/gt: Only transfer the virtual context to the new engine if active
      drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs
      drm/i915: Preallocate stashes for vma page-directories
      drm/i915/gt: Switch to object allocations for page directories
      drm/i915/gt: Shrink i915_page_directory's slab bucket
      drm/i915/gt: Move intel_breadcrumbs_arm_irq earlier
      drm/i915/gt: Hold context/request reference while breadcrumbs are active
      drm/i915/selftests: Prevent selecting 0 for our random width/align
      drm/i915/gem: Reduce context termination list iteration guard to RCU
      drm/i915/gem: Free the fence after a fence-chain lookup failure
      drm/i915: Be wary of data races when reading the active execlists
      drm/i915: Remove i915_request.lock requirement for execution callbacks
      drm/i915: Filter wake_flags passed to default_wake_function

Maarten Lankhorst (23):
      Revert "drm/i915/gem: Async GPU relocations only"
      drm/i915: Revert relocation chaining commits.
      Revert "drm/i915/gem: Drop relocation slowpath".
      Revert "drm/i915/gem: Split eb_vma into its own allocation"
      drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2.
      drm/i915: Remove locking from i915_gem_object_prepare_read/write
      drm/i915: Parse command buffer earlier in eb_relocate(slow)
      drm/i915: Use per object locking in execbuf, v12.
      drm/i915: Use ww locking in intel_renderstate.
      drm/i915: Add ww context handling to context_barrier_task
      drm/i915: Nuke arguments to eb_pin_engine
      drm/i915: Pin engine before pinning all objects, v5.
      drm/i915: Rework intel_context pinning to do everything outside of pin_mutex
      drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin.
      drm/i915: Convert i915_gem_object/client_blt.c to use ww locking as well, v2.
      drm/i915: Kill last user of intel_context_create_request outside of selftests
      drm/i915: Convert i915_perf to ww locking as well
      drm/i915: Dirty hack to fix selftests locking inversion
      drm/i915/selftests: Fix locking inversion in lrc selftest.
      drm/i915: Use ww pinning for intel_context_create_request()
      drm/i915: Move i915_vma_lock in the selftests to avoid lock inversion, v3.
      drm/i915: Add ww locking to vm_fault_gtt
      drm/i915: Add ww locking to pin_to_display_plane, v2.

Thomas Hellström (1):
      drm/i915: Unlock the shared hwsp_gtt object after pinning

 drivers/gpu/drm/i915/display/intel_display.c       |    6 +-
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |   89 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  105 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   80 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     | 1601 +++++++++++++-------
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   51 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   40 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |  152 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.h     |    3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   10 +
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_throttle.c       |   67 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |    2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |    9 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |    2 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |   50 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  144 +-
 .../drm/i915/gem/selftests/i915_gem_execbuffer.c   |   60 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |   45 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c |    2 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  106 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.h               |    5 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  181 +--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  305 ++--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h        |   36 +
 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   47 +
 drivers/gpu/drm/i915/gt/intel_context.c            |  318 ++--
 drivers/gpu/drm/i915/gt/intel_context.h            |   13 +
 drivers/gpu/drm/i915/gt/intel_context_types.h      |    5 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   20 -
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   34 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |    3 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   31 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   97 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |   23 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |  103 +-
 .../gpu/drm/i915/gt/intel_gt_buffer_pool_types.h   |    6 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |    1 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  300 +---
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  142 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  182 ++-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  150 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |   73 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.h        |    9 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |    1 +
 drivers/gpu/drm/i915/gt/intel_ring.c               |   10 +-
 drivers/gpu/drm/i915/gt/intel_ring.h               |    3 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   42 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |    1 +
 drivers/gpu/drm/i915/gt/intel_timeline.c           |   28 +-
 drivers/gpu/drm/i915/gt/intel_timeline.h           |   24 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   43 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |   30 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |    2 +
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   22 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   30 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   10 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |    2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |    2 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c              |    3 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   17 +-
 drivers/gpu/drm/i915/i915_active.c                 |  237 ++-
 drivers/gpu/drm/i915/i915_active.h                 |   31 +-
 drivers/gpu/drm/i915/i915_drv.c                    |    2 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   24 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  107 +-
 drivers/gpu/drm/i915/i915_gem.h                    |   12 +
 drivers/gpu/drm/i915/i915_irq.c                    |    1 +
 drivers/gpu/drm/i915/i915_perf.c                   |   57 +-
 drivers/gpu/drm/i915/i915_request.c                |  224 +--
 drivers/gpu/drm/i915/i915_request.h                |    8 -
 drivers/gpu/drm/i915/i915_sw_fence.c               |   10 +-
 drivers/gpu/drm/i915/i915_vma.c                    |   65 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   13 +-
 drivers/gpu/drm/i915/selftests/i915_gem.c          |   41 +
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   75 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |    4 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |   18 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |    2 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |    8 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c          |   26 +-
 82 files changed, 3743 insertions(+), 2206 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PULL] drm-intel-gt-next
@ 2020-09-04 13:39 Joonas Lahtinen
  0 siblings, 0 replies; 37+ messages in thread
From: Joonas Lahtinen @ 2020-09-04 13:39 UTC (permalink / raw)
  To: Dave Airlie, Daniel Vetter
  Cc: dim-tools, dri-devel, Rodrigo Vivi, Sean Paul, intel-gfx

Hi Dave & Daniel,

Here goes the GT pull request for v5.10. It's the same patches as
previously at "topic/drm-intel-gem-next", one dropped and a few
re-ordered while creating the "drm-intel-gt-next" branch. So the
patches have been part of drm-tip already for weeks.

More about the PR itself at the end, but now cutting to content:

As the log indicates, this pull req is all about the requested locking
refactoring. It ultimately ends up taking the WW locking into use across
the driver. I don't plan on sending further feature pull request
for v5.10, but let's focus on the -fixes pulls to stabilize this.

Apart from that, there's fix for Tigerlake related to syncobjs, a couple
of fixes to keep CI happy, and a code refactoring to allow for the
locking paradigm change.

GVT-g scheduler codebase is still missing the reworks. They will be done
as soon as the i915 ones get merged. But we have validated that the GVT-g
functionality still works as it's rather independent codebase.

NOTE: Includes reverts for 5 patches to faster introduce WW locking
refactoring. So those may come with some perf regressions. And major
locking refactoring probably also introduced some very subtle implicit
uAPI changes, so we'll have to deal with those as they are noticed.

Will include remaining 3 commits from drm-intel-gt-next in the PR of
next week (just -fixes stuff), when we have the full fixup for one of
them in addition to the minimal backportable fix. But feel free to 
take a look at the improved commit messages already, which you requested
in the previous -fixes PR.

CI results can be found at:

https://intel-gfx-ci.01.org/tree/drm-intel-gt-next/index.html

About this PR itself: I produced this with local DIM changes to
be able to tag branches at given commit and send the PR for given tag.
Took a couple of tries, so you can disregard the extra tags until
drm-intel-gt-next-2020-09-04-2. I'll post the DIM changes for review
as RFC.

Plan is for the "drm-intel-gt-next" branch to be a persistent branch,
where the GT hardware and GEM uAPI related patches would go. I opted to
drop the -queued concept, so single tree for tagging PRs and merging.

The rebasing onto drm-next while pushing to drm-intel-gt-next also causes
DIM to complain about the committer S-o-b's. I only added S-o-b to patches
that were actually modified and noticed DIM complaint only after I had
already fixed up all the Fixes: references.

I can re-spin with added S-o-bs everywhere if that's necessary.

Regards, Joonas

***

drm-intel-gt-next-2020-09-04-3:

UAPI Changes:
(- Potential implicit changes from WW locking refactoring)

Cross-subsystem Changes:
(- WW locking changes should align the i915 locking more with others)

Driver Changes:

- MAJOR: Apply WW locking across the driver (Maarten)

- Reverts for 5 commits to make applying WW locking faster (Maarten)
- Disable preparser around invalidations on Tigerlake for non-RCS engines (Chris)
- Add missing dma_fence_put() for error case of syncobj timeline (Chris)
- Parse command buffer earlier in eb_relocate(slow) to facilitate backoff (Maarten)
- Pin engine before pinning all objects (Maarten)
- Rework intel_context pinning to do everything outside of pin_mutex (Maarten)

- Avoid tracking GEM context until registered (Cc: stable, Chris)
- Provide a fastpath for waiting on vma bindings (Chris)
- Fixes to preempt-to-busy mechanism (Chris)
- Distinguish the virtual breadcrumbs from the irq breadcrumbs (Chris)
- Switch to object allocations for page directories (Chris)
- Hold context/request reference while breadcrumbs are active (Chris)
- Make sure execbuffer always passes ww state to i915_vma_pin (Maarten)

- Code refactoring to facilitate use of WW locking (Maarten)
- Locking refactoring to use more granular locking (Maarten, Chris)
- Support for multiple pinned timelines per engine (Chris)
- Move complication of I915_GEM_THROTTLE to the ioctl from general code (Chris)
- Make active tracking/vma page-directory stash work preallocated (Chris)
- Avoid flushing submission tasklet too often (Chris)
- Reduce context termination list iteration guard to RCU (Chris)
- Reductions to locking contention (Chris)
- Fixes for issues found by CI (Chris)

The following changes since commit 3393649977f9a8847c659e282ea290d4b703295c:

  Merge tag 'drm-intel-next-2020-08-24-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2020-08-28 14:09:31 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2020-09-04-3

for you to fetch changes up to 509c5c3f0a072962260299aeab106ce27df7bb07:

  drm/i915: Add ww locking to pin_to_display_plane, v2. (2020-09-03 15:35:28 +0300)

----------------------------------------------------------------
UAPI Changes:
(- Potential implicit changes from WW locking refactoring)

Cross-subsystem Changes:
(- WW locking changes should align the i915 locking more with others)

Driver Changes:

- MAJOR: Apply WW locking across the driver (Maarten)

- Reverts for 5 commits to make applying WW locking faster (Maarten)
- Disable preparser around invalidations on Tigerlake for non-RCS engines (Chris)
- Add missing dma_fence_put() for error case of syncobj timeline (Chris)
- Parse command buffer earlier in eb_relocate(slow) to facilitate backoff (Maarten)
- Pin engine before pinning all objects (Maarten)
- Rework intel_context pinning to do everything outside of pin_mutex (Maarten)

- Avoid tracking GEM context until registered (Cc: stable, Chris)
- Provide a fastpath for waiting on vma bindings (Chris)
- Fixes to preempt-to-busy mechanism (Chris)
- Distinguish the virtual breadcrumbs from the irq breadcrumbs (Chris)
- Switch to object allocations for page directories (Chris)
- Hold context/request reference while breadcrumbs are active (Chris)
- Make sure execbuffer always passes ww state to i915_vma_pin (Maarten)

- Code refactoring to facilitate use of WW locking (Maarten)
- Locking refactoring to use more granular locking (Maarten, Chris)
- Support for multiple pinned timelines per engine (Chris)
- Move complication of I915_GEM_THROTTLE to the ioctl from general code (Chris)
- Make active tracking/vma page-directory stash work preallocated (Chris)
- Avoid flushing submission tasklet too often (Chris)
- Reduce context termination list iteration guard to RCU (Chris)
- Reductions to locking contention (Chris)
- Fixes for issues found by CI (Chris)

----------------------------------------------------------------
Chris Wilson (30):
      drm/i915: Reduce i915_request.lock contention for i915_request_wait
      drm/i915/selftests: Mock the status_page.vma for the kernel_context
      drm/i915: Soften the tasklet flush frequency before waits
      drm/i915/gem: Remove disordered per-file request list for throttling
      drm/i915/gt: Disable preparser around xcs invalidations on tgl
      drm/i915/gt: Delay taking the spinlock for grabbing from the buffer pool
      drm/i915/selftests: Flush the active barriers before asserting
      drm/i915/gt: Fix termination condition for freeing all buffer objects
      drm/i915/gem: Delay tracking the GEM context until it is registered
      drm/i915/gt: Support multiple pinned timelines
      drm/i915/gt: Pull release of node->age under the spinlock
      drm/i915/selftests: Drop stale timeline constructor assert
      drm/i915: Skip taking acquire mutex for no ref->active callback
      drm/i915: Export a preallocate variant of i915_active_acquire()
      drm/i915: Keep the most recently used active-fence upon discard
      drm/i915: Make the stale cached active node available for any timeline
      drm/i915: Reduce locking around i915_active_acquire_preallocate_barrier()
      drm/i915: Provide a fastpath for waiting on vma bindings
      drm/i915: Remove requirement for holding i915_request.lock for breadcrumbs
      drm/i915/gt: Replace intel_engine_transfer_stale_breadcrumbs
      drm/i915/gt: Only transfer the virtual context to the new engine if active
      drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs
      drm/i915: Preallocate stashes for vma page-directories
      drm/i915/gt: Switch to object allocations for page directories
      drm/i915/gt: Shrink i915_page_directory's slab bucket
      drm/i915/gt: Move intel_breadcrumbs_arm_irq earlier
      drm/i915/gt: Hold context/request reference while breadcrumbs are active
      drm/i915/selftests: Prevent selecting 0 for our random width/align
      drm/i915/gem: Reduce context termination list iteration guard to RCU
      drm/i915/gem: Free the fence after a fence-chain lookup failure

Maarten Lankhorst (23):
      Revert "drm/i915/gem: Async GPU relocations only"
      drm/i915: Revert relocation chaining commits.
      Revert "drm/i915/gem: Drop relocation slowpath".
      Revert "drm/i915/gem: Split eb_vma into its own allocation"
      drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2.
      drm/i915: Remove locking from i915_gem_object_prepare_read/write
      drm/i915: Parse command buffer earlier in eb_relocate(slow)
      drm/i915: Use per object locking in execbuf, v12.
      drm/i915: Use ww locking in intel_renderstate.
      drm/i915: Add ww context handling to context_barrier_task
      drm/i915: Nuke arguments to eb_pin_engine
      drm/i915: Pin engine before pinning all objects, v5.
      drm/i915: Rework intel_context pinning to do everything outside of pin_mutex
      drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin.
      drm/i915: Convert i915_gem_object/client_blt.c to use ww locking as well, v2.
      drm/i915: Kill last user of intel_context_create_request outside of selftests
      drm/i915: Convert i915_perf to ww locking as well
      drm/i915: Dirty hack to fix selftests locking inversion
      drm/i915/selftests: Fix locking inversion in lrc selftest.
      drm/i915: Use ww pinning for intel_context_create_request()
      drm/i915: Move i915_vma_lock in the selftests to avoid lock inversion, v3.
      drm/i915: Add ww locking to vm_fault_gtt
      drm/i915: Add ww locking to pin_to_display_plane, v2.

 drivers/gpu/drm/i915/display/intel_display.c       |    6 +-
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |   89 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  105 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   80 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     | 1601 +++++++++++++-------
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   51 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   40 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |  152 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.h     |    3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   10 +
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_throttle.c       |   67 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |    2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |    9 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |    2 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |   50 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  144 +-
 .../drm/i915/gem/selftests/i915_gem_execbuffer.c   |   60 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |   45 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c |    2 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  106 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.h               |    5 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  181 +--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  305 ++--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h        |   36 +
 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   47 +
 drivers/gpu/drm/i915/gt/intel_context.c            |  309 ++--
 drivers/gpu/drm/i915/gt/intel_context.h            |   13 +
 drivers/gpu/drm/i915/gt/intel_context_types.h      |    5 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   20 -
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   34 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |    3 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   31 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   97 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |   23 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |  103 +-
 .../gpu/drm/i915/gt/intel_gt_buffer_pool_types.h   |    6 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |    1 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  300 +---
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  142 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  167 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  150 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |   73 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.h        |    9 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |    1 +
 drivers/gpu/drm/i915/gt/intel_ring.c               |   10 +-
 drivers/gpu/drm/i915/gt/intel_ring.h               |    3 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   42 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |    1 +
 drivers/gpu/drm/i915/gt/intel_timeline.c           |   28 +-
 drivers/gpu/drm/i915/gt/intel_timeline.h           |   24 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   43 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |   30 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |    2 +
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   22 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   30 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   10 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |    2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |    2 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c              |    3 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   17 +-
 drivers/gpu/drm/i915/i915_active.c                 |  237 ++-
 drivers/gpu/drm/i915/i915_active.h                 |   31 +-
 drivers/gpu/drm/i915/i915_drv.c                    |    2 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   24 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  107 +-
 drivers/gpu/drm/i915/i915_gem.h                    |   12 +
 drivers/gpu/drm/i915/i915_irq.c                    |    1 +
 drivers/gpu/drm/i915/i915_perf.c                   |   57 +-
 drivers/gpu/drm/i915/i915_request.c                |  132 +-
 drivers/gpu/drm/i915/i915_request.h                |    8 -
 drivers/gpu/drm/i915/i915_vma.c                    |   65 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   13 +-
 drivers/gpu/drm/i915/selftests/i915_gem.c          |   41 +
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   75 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |    4 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |   18 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |    2 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |    8 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c          |   26 +-
 81 files changed, 3654 insertions(+), 2169 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2022-11-18  9:12 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-08  9:27 [PULL] drm-intel-gt-next Joonas Lahtinen
2021-10-08  9:27 ` [Intel-gfx] " Joonas Lahtinen
  -- strict thread matches above, loose matches on Subject: below --
2022-11-18  9:12 Joonas Lahtinen
2022-11-03  8:03 Joonas Lahtinen
2022-10-31 11:07 Joonas Lahtinen
2022-11-01 19:33 ` Dave Airlie
2022-09-16  8:47 Joonas Lahtinen
2022-09-09 11:20 Joonas Lahtinen
2022-08-24 12:01 Joonas Lahtinen
2022-07-13 21:31 Rodrigo Vivi
2022-07-21 15:06 ` Vivi, Rodrigo
2022-06-29 10:45 Tvrtko Ursulin
2022-05-05  6:39 Tvrtko Ursulin
2022-04-27 10:49 Tvrtko Ursulin
2022-03-03  7:50 Joonas Lahtinen
2022-02-17 10:26 Joonas Lahtinen
2022-02-20 23:30 ` Dave Airlie
2022-02-21  9:21   ` Jani Nikula
2022-02-22 19:44     ` Lucas De Marchi
2022-02-23 20:35       ` Vivi, Rodrigo
2021-12-23 12:47 Tvrtko Ursulin
2021-12-09 13:14 Tvrtko Ursulin
2021-10-21 13:07 Joonas Lahtinen
2021-08-06 10:06 Joonas Lahtinen
2021-08-06 10:10 ` Joonas Lahtinen
2021-06-10  9:40 Joonas Lahtinen
2021-05-28  7:25 Joonas Lahtinen
2021-05-28  7:27 ` Joonas Lahtinen
2021-06-02  0:28   ` Dave Airlie
2021-06-02  4:17     ` Dave Airlie
2021-06-02  4:30       ` Dave Airlie
2021-04-06 13:40 Joonas Lahtinen
2021-01-21 15:07 Joonas Lahtinen
2021-01-14 15:22 Joonas Lahtinen
2020-11-12 16:34 Joonas Lahtinen
2020-09-07 13:00 Joonas Lahtinen
2020-09-04 13:39 Joonas Lahtinen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.