mbox series

[PULL] drm-intel-gt-next

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

Pull-request

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

Message

Joonas Lahtinen Aug. 6, 2021, 10:06 a.m. UTC
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

Comments

Joonas Lahtinen Aug. 6, 2021, 10:10 a.m. UTC | #1
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