[PULL] drm-intel-gt-next

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Thu Nov 12 16:34:07 UTC 2020


Hi Dave & Daniel,

Here goes the drm-intel-gt-next PR for 5.11.

Most importantly there is a healthy chunk of Tigerlake
related fixes and a fix for user reported issue #2381 where
graphics output would stop at "switching to inteldrmfb from
simple".

Fixes to DMA mapped sg usage in i915 to unblock intel iommu
rework. Fixes to previously introduced WW mutex rework.

We're enabling eLLC for displayable buffers on SKL+. Plenty
of fixes to driver unbind/bind cycle. The GuC firmware
version is being updated (that just loads HuC for now).

The usual amount of fixes for CI found corner cases.

Expect a few conflicts with drm-intel-next (resolved in rerere)
as the platform enabling ones go there. I'll backmerge drm-next
once you've accepted this to pull all the changes to gt-next.

The -next-fixes and -fixes would come from Jani after this is
accepted, too.

Regards, Joonas

***

drm-intel-gt-next-2020-11-12-1:

Cross-subsystem Changes:
- DMA mapped scatterlist fixes in i915 to unblock merging of
  https://lkml.org/lkml/2020/9/27/70 (Tvrtko, Tom)

Driver Changes:

- Fix for user reported issue #2381 (Graphical output stops with "switching to inteldrmfb from simple"):
  Mark ininitial fb obj as WT on eLLC machines to avoid rcu lockup during fbdev init (Ville, Chris)
- Fix for Tigerlake (and earlier) to avoid spurious empty CSB events leading to hang (Chris, Bruce)
- Delay execlist processing for Tigerlake to avoid hang (Chris)
- Fix for Tigerlake RCS engine health check through heartbeat (Chris)
- Fix for Tigerlake reserved MOCS entries (Ayaz, Chris)
- Fix Media power gate sequence on Tigerlake (Rodrigo)
- Enable eLLC caching of display buffers for SKL+ (Ville)
- Support parsing of oversize batches on Gen9 (Matt, Chris)
- Exclude low pages (128KiB) of stolen from use to avoid thrashing during reset (Chris)
- Flush engines before Tigerlake breadcrumbs (Chris)

- Use the local HWSP offset during submission (Chris)
- Flush coherency domains on first set-domain-ioctl (Chris, Zbigniew)
- Use the active reference on the vma while capturing to avoid use-after-free (Chris)
- Fix MOCS PTE setting for gen9+ (Ville)
- Avoid NULL dereference on IPS driver callback while unbinding i915 (Chris)
- Avoid NULL dereference from PT/PD stash allocation error (Matt)
- Hold request reference for canceling an active context (Chris)
- Avoid infinite loop on x86-32 when mapping a lot of objects (Chris)
- Disallow WC mappings when processor doesn't support them (Chris)
- Return correct error in i915_gem_object_copy_blt() error path (Dan)
- Return correct error in intel_context_create_request() error path (Maarten)
- Tune down GuC communication enabled/disabled messages to debug (Jani)
- Fix rebased commit "Remove i915_request.lock requirement for execution callbacks" (Chris)
- Cancel outstanding work after disabling heartbeats on an engine (Chris)
- Signal cancelled requests (Chris)
- Retire cancelled requests on unload (Chris)
- Scrub HW state on driver remove (Chris)
- Undo forced context restores after trivial preemptions (Chris)
- Handle PCI unbind in PMU code (Tvrtko)
- Fix CPU hotplug with multiple GPUs in PMU code (Trtkko)
- Correctly set SFC capability for video engines (Venkata)

- Update GuC code to use firmware v49.0.1 (John, Matthew B., Daniele, Oscar, Michel, Rodrigo, Michal)
- Improve GuC warnings on loading failure (John)
- Avoid ownership race in buffer pool by clearing age (Chris)
- Use MMIO to read CSB in case of failure (Chris, Mika)
- Show engine properties in engine state dump to indicate changes (Chris, Joonas)
- Break up error capture compression loops with cond_resched() (Chris)
- Reduce GPU error capture mutex hold time to avoid khungtaskd (Chris)
- Serialise debugfs i915_gem_objects with ctx->mutex (Chris)
- Always test execution status on closing the context and close if not persistent (Chris)
- Avoid mixing integer types during batch copies (Chris, Jared)
- Skip over MI_NOOP when parsing to avoid overhead (Chris)
- Hold onto an explicit ref to i915_vma_work.pinned (Chris)
- Perform all asynchronous waits prior to marking payload start (Chris)
- Pull phys pread/pwrite implementations to the backend (Matt)

- Improve record of hung engines in error state (Tvrtko)
- Allow backends to override pread implementation (Matt)
- Reinforce LRC poisoning checks to confirm context survives execution (Chris)
- Fix memory region max size calculation (Matt)
- Fix order when adding blocks to memory region (Matt)
- Eliminate unused intel_virtual_engine_get_sibling func (Chris)
- Cleanup kasan warning for on-stack (unsigned long) casting (Chris)
- Onion unwind for scratch page allocation failure (Chris)
- Poison stolen pages before use (Chris)
- Selftest improvements (Chris)
The following changes since commit e0ee152fce25dc9269c7ea5280c98aa4b3682759:

  drm/i915: Unlock the shared hwsp_gtt object after pinning (2020-09-07 15:08:11 +0300)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2020-11-12-1

for you to fetch changes up to 695dc55b573985569259e18f8e6261a77924342b:

  drm/i915/tgl: Fix Media power gate sequence. (2020-11-11 15:07:10 +0000)

----------------------------------------------------------------
Cross-subsystem Changes:
- DMA mapped scatterlist fixes in i915 to unblock merging of
  https://lkml.org/lkml/2020/9/27/70 (Tvrtko, Tom)

Driver Changes:

- Fix for user reported issue #2381 (Graphical output stops with "switching to inteldrmfb from simple"):
  Mark ininitial fb obj as WT on eLLC machines to avoid rcu lockup during fbdev init (Ville, Chris)
- Fix for Tigerlake (and earlier) to avoid spurious empty CSB events leading to hang (Chris, Bruce)
- Delay execlist processing for Tigerlake to avoid hang (Chris)
- Fix for Tigerlake RCS engine health check through heartbeat (Chris)
- Fix for Tigerlake reserved MOCS entries (Ayaz, Chris)
- Fix Media power gate sequence on Tigerlake (Rodrigo)
- Enable eLLC caching of display buffers for SKL+ (Ville)
- Support parsing of oversize batches on Gen9 (Matt, Chris)
- Exclude low pages (128KiB) of stolen from use to avoid thrashing during reset (Chris)
- Flush engines before Tigerlake breadcrumbs (Chris)

- Use the local HWSP offset during submission (Chris)
- Flush coherency domains on first set-domain-ioctl (Chris, Zbigniew)
- Use the active reference on the vma while capturing to avoid use-after-free (Chris)
- Fix MOCS PTE setting for gen9+ (Ville)
- Avoid NULL dereference on IPS driver callback while unbinding i915 (Chris)
- Avoid NULL dereference from PT/PD stash allocation error (Matt)
- Hold request reference for canceling an active context (Chris)
- Avoid infinite loop on x86-32 when mapping a lot of objects (Chris)
- Disallow WC mappings when processor doesn't support them (Chris)
- Return correct error in i915_gem_object_copy_blt() error path (Dan)
- Return correct error in intel_context_create_request() error path (Maarten)
- Tune down GuC communication enabled/disabled messages to debug (Jani)
- Fix rebased commit "Remove i915_request.lock requirement for execution callbacks" (Chris)
- Cancel outstanding work after disabling heartbeats on an engine (Chris)
- Signal cancelled requests (Chris)
- Retire cancelled requests on unload (Chris)
- Scrub HW state on driver remove (Chris)
- Undo forced context restores after trivial preemptions (Chris)
- Handle PCI unbind in PMU code (Tvrtko)
- Fix CPU hotplug with multiple GPUs in PMU code (Trtkko)
- Correctly set SFC capability for video engines (Venkata)

- Update GuC code to use firmware v49.0.1 (John, Matthew B., Daniele, Oscar, Michel, Rodrigo, Michal)
- Improve GuC warnings on loading failure (John)
- Avoid ownership race in buffer pool by clearing age (Chris)
- Use MMIO to read CSB in case of failure (Chris, Mika)
- Show engine properties in engine state dump to indicate changes (Chris, Joonas)
- Break up error capture compression loops with cond_resched() (Chris)
- Reduce GPU error capture mutex hold time to avoid khungtaskd (Chris)
- Serialise debugfs i915_gem_objects with ctx->mutex (Chris)
- Always test execution status on closing the context and close if not persistent (Chris)
- Avoid mixing integer types during batch copies (Chris, Jared)
- Skip over MI_NOOP when parsing to avoid overhead (Chris)
- Hold onto an explicit ref to i915_vma_work.pinned (Chris)
- Perform all asynchronous waits prior to marking payload start (Chris)
- Pull phys pread/pwrite implementations to the backend (Matt)

- Improve record of hung engines in error state (Tvrtko)
- Allow backends to override pread implementation (Matt)
- Reinforce LRC poisoning checks to confirm context survives execution (Chris)
- Fix memory region max size calculation (Matt)
- Fix order when adding blocks to memory region (Matt)
- Eliminate unused intel_virtual_engine_get_sibling func (Chris)
- Cleanup kasan warning for on-stack (unsigned long) casting (Chris)
- Onion unwind for scratch page allocation failure (Chris)
- Poison stolen pages before use (Chris)
- Selftest improvements (Chris)

----------------------------------------------------------------
Ayaz A Siddiqui (1):
      drm/i915/gt: Initialize reserved and unspecified MOCS indices

Chris Wilson (46):
      drm/i915/gem: Avoid implicit vmap for highmem on x86-32
      drm/i915/gem: Prevent using pgprot_writecombine() if PAT is not supported
      drm/i915/gt: Clear the buffer pool age before use
      drm/i915/gt: Check for a registered driver with IPS
      drm/i915/gt: Widen CSB pointer to u64 for the parsers
      drm/i915/gt: Wait for CSB entries on Tigerlake
      drm/i915/gt: Apply the CSB w/a for all
      drm/i915/gt: Use a mmio read of the CSB in case of failure
      drm/i915/gt: Show engine properties in the pretty printer
      drm/i915: Break up error capture compression loops with cond_resched()
      drm/i915: Reduce GPU error capture mutex hold time
      drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()
      drm/i915/gem: Serialise debugfs i915_gem_objects with ctx->mutex
      drm/i915: Redo "Remove i915_request.lock requirement for execution callbacks"
      drm/i915/gem: Hold request reference for canceling an active context
      drm/i915: Cancel outstanding work after disabling heartbeats on an engine
      drm/i915/gt: Always send a pulse down the engine after disabling heartbeat
      drm/i915/gem: Always test execution status on closing the context
      drm/i915: Avoid mixing integer types during batch copies
      drm/i915/gt: Signal cancelled requests
      drm/i915/selftests: Finish pending mock requests on cancellation.
      drm/i915/gt: Retire cancelled requests on unload
      drm/i915: Skip over MI_NOOP when parsing
      drm/i915/gt: Scrub HW state on remove
      drm/i915/gt: Track the most recent pulse for the heartbeat
      drm/i915/gt: Fixup tgl mocs for PTE tracking
      drm/i915/gem: Support parsing of oversize batches
      drm/i915/gt: Delay execlist processing for tgl
      drm/i915/gt: Undo forced context restores after trivial preemptions
      drm/i915/gt: Cleanup kasan warning for on-stack (unsigned long) casting
      drm/i915/gt: Confirm the context survives execution
      drm/i915: Use the active reference on the vma while capturing
      drm/i915/gt: Onion unwind for scratch page allocation failure
      drm/i915/gem: Poison stolen pages before use
      drm/i915: Exclude low pages (128KiB) of stolen from use
      drm/i915/selftests: Flush the old heartbeat more gently
      drm/i915/gem: Flush coherency domains on first set-domain-ioctl
      drm/i915/selftests: Skip RPS tests on Ironlake (only IPS)
      drm/i915/gt: Use the local HWSP offset during submission
      drm/i915/selftests: Exercise intel_timeline_read_hwsp()
      drm/i915/gem: Avoid synchronous binds deep within locks
      drm/i915/gt: Expose more parameters for emitting writes into the ring
      drm/i915/gt: Flush xcs before tgl breadcrumbs
      drm/i915: Hold onto an explicit ref to i915_vma_work.pinned
      drm/i915/gem: Perform all asynchronous waits prior to marking payload start
      drm/i915/gem: Pull phys pread/pwrite implementations to the backend

Dan Carpenter (1):
      drm/i915: Fix an error code i915_gem_object_copy_blt()

Jani Nikula (1):
      drm/i915/uc: tune down GuC communication enabled/disabled messages

John Harrison (3):
      drm/i915/guc: Update to use firmware v49.0.1
      drm/i915/guc: Improved reporting when GuC fails to load
      drm/i915/guc: Clear pointers on free

Maarten Lankhorst (1):
      drm/i915: Fix uninitialised variable in intel_context_create_request.

Matthew Auld (4):
      drm/i915: check i915_vm_alloc_pt_stash for errors
      drm/i915/region: fix max size calculation
      drm/i915/gem: Allow backends to override pread implementation
      drm/i915/region: fix order when adding blocks

Rodrigo Vivi (1):
      drm/i915/tgl: Fix Media power gate sequence.

Tvrtko Ursulin (6):
      drm/i915: Fix DMA mapped scatterlist walks
      drm/i915: Fix DMA mapped scatterlist lookup
      drm/i915/pmu: Handle PCI unbind
      drm/i915/pmu: Fix CPU hotplug with multiple GPUs
      drm/i915: Improve record of hung engines in error state
      drm/i915: Use ABI engine class in error state ecode

Venkata Sandeep Dhanalakota (1):
      drm/i915: Correctly set SFC capability for video engines

Ville Syrjälä (3):
      drm/i915: Mark ininitial fb obj as WT on eLLC machines to avoid rcu lockup during fbdev init
      drm/i915: Fix MOCS PTE setting for gen9+
      drm/i915: Enable eLLC caching of display buffers for SKL+

 drivers/gpu/drm/i915/Kconfig.debug                 |   1 +
 drivers/gpu/drm/i915/display/intel_display.c       |   8 +
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |  18 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  73 ++--
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |  28 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  17 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.c         |   2 +
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |  20 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |  19 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  51 ++-
 drivers/gpu/drm/i915/gem/i915_gem_phys.c           |  55 +++
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |  54 ++-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h         |   2 +
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  24 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  20 +-
 drivers/gpu/drm/i915/gt/intel_context.c            |   1 +
 drivers/gpu/drm/i915/gt/intel_engine.h             |  64 ++--
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |  42 ++-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   | 112 +++---
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |  37 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   4 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |  11 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |   2 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  10 +-
 drivers/gpu/drm/i915/gt/intel_gtt.h                |   2 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                | 162 ++++++---
 drivers/gpu/drm/i915/gt/intel_lrc.h                |   4 -
 drivers/gpu/drm/i915/gt/intel_lrc_reg.h            |   3 +
 drivers/gpu/drm/i915/gt/intel_mocs.c               |  21 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |  22 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   4 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   1 +
 drivers/gpu/drm/i915/gt/intel_rps.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_timeline.c           |  18 +-
 drivers/gpu/drm/i915/gt/intel_timeline_types.h     |   2 +
 drivers/gpu/drm/i915/gt/mock_engine.c              |  29 +-
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |  13 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           | 196 +++++++++++
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   8 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        | 378 ++++++++++++++++++++-
 drivers/gpu/drm/i915/gt/sysfs_engines.c            |  10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |  18 -
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         | 132 +++++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c          |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |  31 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h        |  80 +++--
 drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h         |   5 +
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |   6 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           |  27 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   2 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h       |   6 +-
 drivers/gpu/drm/i915/i915_cmd_parser.c             |  77 +++--
 drivers/gpu/drm/i915/i915_debugfs.c                |   4 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   7 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  32 +-
 drivers/gpu/drm/i915/i915_gpu_error.c              |  74 ++--
 drivers/gpu/drm/i915/i915_gpu_error.h              |  10 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   7 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |  96 ++++--
 drivers/gpu/drm/i915/i915_pmu.h                    |  10 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  12 +-
 drivers/gpu/drm/i915/i915_request.c                |  17 +-
 drivers/gpu/drm/i915/i915_scatterlist.h            |  17 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  14 +-
 drivers/gpu/drm/i915/intel_memory_region.c         |   4 +-
 drivers/gpu/drm/i915/intel_pm.c                    |  13 -
 .../gpu/drm/i915/selftests/intel_memory_region.c   |  77 +++++
 drivers/gpu/drm/i915/selftests/mock_region.c       |   2 +-
 70 files changed, 1759 insertions(+), 576 deletions(-)


More information about the dri-devel mailing list