[PULL] drm-intel-gt-next

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Fri Aug 4 08:45:04 UTC 2023


Hi Dave & Daniel,

Here goes the first drm-intel-gt-next PR for v6.6.

We have a fix for infinite GPU wait race condition found by CI,
then improved tweakability of RPS algo and fixes to GuC SLPC for
tuning the frequency behavior of the system.

OA report zeroing fix, Aux CCS invalidation fix on Gen12 and
addition of missing W/A for TGL, RKL, DG1, DG2 and ADL.

Then some Meteorlake enabling patches and the usual amount of debugging
and code structure improvements, static checker fixes and fixes for
potential UAF and error handling paths.

Regards, Joonas

PS. Hoping to backmerge drm-next early next week to bring in some
drm-intel-gt-next dependencies before the final PR.

drm-intel-gt-next-2023-08-04:

Driver Changes:

- Avoid infinite GPU waits by avoiding premature release of request's
  reusable memory (Chris, Janusz)
- Expose RPS thresholds in sysfs (Tvrtko)
- Apply GuC SLPC min frequency softlimit correctly (Vinay)
- Restore SLPC efficient freq earlier (Vinay)
- Consider OA buffer boundary when zeroing out reports (Umesh)
- Extend Wa_14015795083 to TGL, RKL, DG1 and ADL (Matt R)
- Fix context workarounds with non-masked regs on MTL/DG2 (Lucas)
- Enable the CCS_FLUSH bit in the pipe control and in the CS for MTL+ (Andi)
- Update MTL workarounds 14018778641, 22016122933 (Tejas, Zhanjun)
- Ensure memory quiesced before AUX CCS invalidation (Jonathan)

- Add a gsc_info debugfs (Daniele)
- Invalidate the TLBs on each GT on multi-GT device (Chris)
- Fix a VMA UAF for multi-gt platform (Nirmoy)
- Do not use stolen on MTL due to HW bug (Nirmoy)
- Check HuC and GuC version compatibility on MTL (Daniele)
- Dump perf_limit_reasons for slow GuC init debug (Vinay)
- Replace kmap() with kmap_local_page() (Sumitra, Ira)
- Add sentinel to xehp_oa_b_counters for KASAN (Andrzej)
- Add the gen12_needs_ccs_aux_inv helper (Andi)
- Fixes and updates for GSC memory allocation (Daniele)
- Fix one wrong caching mode enum usage (Tvrtko)
- Fixes for GSC wakeref (Alan)

- Static checker fixes (Harshit, Arnd, Dan, Cristophe, David, Andi)
- Rename flags with bit_group_X according to the datasheet (Andi)
- Use direct alias for i915 in requests (Andrzej)
- Replace i915->gt0 with to_gt(i915) (Andi)
- Use the i915_vma_flush_writes helper (Tvrtko)
- Selftest improvements (Alan)
- Remove dead code (Tvrtko)

The following changes since commit 24335848e543dc95c9e2ffa0108d879ffefd0442:

  drm/i915/gsc: Fix error code in intel_gsc_uc_heci_cmd_submit_nonpriv() (2023-06-08 02:11:04 +0200)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2023-08-04

for you to fetch changes up to 28e671114fb0f28f334fac8d0a6b9c395c7b0498:

  drm/i915/guc/slpc: Restore efficient freq earlier (2023-08-02 11:08:02 -0700)

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

- Avoid infinite GPU waits by avoidin premature release of request's
  reusable memory (Chris, Janusz)
- Expose RPS thresholds in sysfs (Tvrtko)
- Apply GuC SLPC min frequency softlimit correctly (Vinay)
- Restore SLPC efficient freq earlier (Vinay)
- Consider OA buffer boundary when zeroing out reports (Umesh)
- Extend Wa_14015795083 to TGL, RKL, DG1 and ADL (Matt R)
- Fix context workarounds with non-masked regs on MTL/DG2 (Lucas)
- Enable the CCS_FLUSH bit in the pipe control and in the CS for MTL+ (Andi)
- Update MTL workarounds 14018778641, 22016122933 (Tejas, Zhanjun)
- Ensure memory quiesced before AUX CCS invalidation (Jonathan)

- Add a gsc_info debugfs (Daniele)
- Invalidate the TLBs on each GT on multi-GT device (Chris)
- Fix a VMA UAF for multi-gt platform (Nirmoy)
- Do not use stolen on MTL due to HW bug (Nirmoy)
- Check HuC and GuC version compatibility on MTL (Daniele)
- Dump perf_limit_reasons for slow GuC init debug (Vinay)
- Replace kmap() with kmap_local_page() (Sumitra, Ira)
- Add sentinel to xehp_oa_b_counters for KASAN (Andrzej)
- Add the gen12_needs_ccs_aux_inv helper (Andi)
- Fixes and updates for GSC memory allocation (Daniele)
- Fix one wrong caching mode enum usage (Tvrtko)
- Fixes for GSC wakeref (Alan)

- Static checker fixes (Harshit, Arnd, Dan, Cristophe, David, Andi)
- Rename flags with bit_group_X according to the datasheet (Andi)
- Use direct alias for i915 in requests (Andrzej)
- Replace i915->gt0 with to_gt(i915) (Andi)
- Use the i915_vma_flush_writes helper (Tvrtko)
- Selftest improvements (Alan)
- Remove dead code (Tvrtko)

----------------------------------------------------------------
Alan Previn (3):
      drm/i915/gsc: take a wakeref for the proxy-init-completion check
      drm/i915/gsc: Fix intel_gsc_uc_fw_proxy_init_done with directed wakerefs
      drm/i915/selftest/gsc: Ensure GSC Proxy init completes before selftests

Andi Shyti (8):
      drm/i915: Replace i915->gt0 with to_gt(i915)
      drm/i915/gt: Cleanup aux invalidation registers
      drm/i915: Add the gen12_needs_ccs_aux_inv helper
      drm/i915/gt: Rename flags with bit_group_X according to the datasheet
      drm/i915/gt: Enable the CCS_FLUSH bit in the pipe control and in the CS
      drm/i915/gt: Support aux invalidation on all engines
      i915/drm/gt: Move the gt defines in the gt directory
      drm/i915: Remove unnecessary include

Andrzej Hajda (2):
      drm/i915/perf: add sentinel to xehp_oa_b_counters
      drm/i915: use direct alias for i915 in requests

Arnd Bergmann (1):
      drm/i915: make i915_drm_client_fdinfo() reference conditional again

Chris Wilson (2):
      drm/i915/gt: Move TLB invalidation to its own file
      drm/i915: Invalidate the TLBs on each GT

Christophe JAILLET (1):
      drm/i915: Fix an error handling path in igt_write_huge()

Dan Carpenter (1):
      drm/i915: Fix a NULL vs IS_ERR() bug

Daniele Ceraolo Spurio (5):
      drm/i915/gsc: fixes and updates for GSC memory allocation
      drm/i915/mtl/gsc: extract release and security versions from the gsc binary
      drm/i915/mtl/gsc: query the GSC FW for its compatibility version
      drm/i915/mtl/gsc: Add a gsc_info debugfs
      drm/i915/huc: check HuC and GuC version compatibility on MTL

David Reaver (1):
      drm/i915/huc: fix intel_huc.c doc bulleted list format error

Harshit Mogalapalli (1):
      drm/i915/huc: Fix missing error code in intel_huc_init()

Janusz Krzysztofik (1):
      drm/i915: Fix premature release of request's reusable memory

Jonathan Cavitt (2):
      drm/i915/gt: Ensure memory quiesced before invalidation
      drm/i915/gt: Poll aux invalidation register bit on invalidation

Lucas De Marchi (7):
      drm/i915/gt: Move wal_get_fw_for_rmw()
      drm/i915/gt: Clear all bits from GEN12_FF_MODE2
      drm/i915/gt: Fix context workarounds with non-masked regs
      drm/i915/gt: Drop read from GEN8_L3CNTLREG in ICL workaround
      drm/i915/gt: Enable read back on XEHP_FF_MODE2
      drm/i915/gt: Remove bogus comment on IVB_FBC_RT_BASE_UPPER
      drm/i915/gt: Also check set bits in clr_set()

Matt Roper (1):
      drm/i915: Extend Wa_14015795083 platforms

Nirmoy Das (2):
      drm/i915: Fix a VMA UAF for multi-gt platform
      drm/i915/gt: Do not use stolen on MTL

Sumitra Sharma (1):
      drm/i915: Replace kmap() with kmap_local_page()

Tejas Upadhyay (1):
      drm/i915/mtl: Update workaround 14018778641

Tvrtko Ursulin (8):
      drm/i915: Remove some dead "code"
      drm/i915: Remove dead code from gen8_pte_encode
      drm/i915: Fix one wrong caching mode enum usage
      drm/i915: Move setting of rps thresholds to init
      drm/i915: Record default rps threshold values
      drm/i915: Add helpers for managing rps thresholds
      drm/i915: Expose RPS thresholds in sysfs
      drm/i915: Use the i915_vma_flush_writes helper

Umesh Nerlige Ramappa (1):
      drm/i915/perf: Consider OA buffer boundary when zeroing out reports

Vinay Belgaumkar (3):
      drm/i915/guc/slpc: Apply min softlimit correctly
      drm/i915/guc: Dump perf_limit_reasons for debug
      drm/i915/guc/slpc: Restore efficient freq earlier

Zhanjun Dong (1):
      drm/i915/mtl: Update cache coherency setting for context structure

 drivers/gpu/drm/i915/Makefile                      |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |  25 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          |  15 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |   2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |   6 +-
 drivers/gpu/drm/i915/gt/gen2_engine_cs.c           |   2 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           | 152 +++++----
 drivers/gpu/drm/i915/gt/gen8_engine_cs.h           |  21 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |   3 -
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   1 +
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |   2 +-
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h       |   2 +
 drivers/gpu/drm/i915/gt/intel_gt.c                 | 144 +--------
 drivers/gpu/drm/i915/gt/intel_gt.h                 |  12 -
 drivers/gpu/drm/i915/gt/intel_gt_defines.h         |  11 +
 drivers/gpu/drm/i915/gt/intel_gt_regs.h            |  16 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        | 108 +++++++
 drivers/gpu/drm/i915/gt/intel_gt_types.h           |   3 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |   2 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  26 +-
 drivers/gpu/drm/i915/gt/intel_migrate.c            |  10 +-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |   4 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |   2 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |   3 -
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   2 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |  83 ++++-
 drivers/gpu/drm/i915/gt/intel_rps.h                |   4 +
 drivers/gpu/drm/i915/gt/intel_tlb.c                | 159 ++++++++++
 drivers/gpu/drm/i915/gt/intel_tlb.h                |  29 ++
 drivers/gpu/drm/i915/gt/intel_workarounds.c        | 148 ++++-----
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |   2 +-
 drivers/gpu/drm/i915/gt/selftest_mocs.c            |   2 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |   2 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   4 +-
 drivers/gpu/drm/i915/gt/selftest_tlb.c             |   3 +-
 .../gpu/drm/i915/gt/uc/intel_gsc_binary_headers.h  |  75 ++++-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.c          | 340 ++++++++++++++++++---
 drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.h          |   5 +-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c          | 139 ++++++++-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h          |  21 ++
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.c  |  39 +++
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.h  |  14 +
 .../drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.h  |   1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |   8 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c        |  24 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |   9 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c          |  13 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c      |   2 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c           | 126 ++++++--
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h           |   4 +
 drivers/gpu/drm/i915/gvt/scheduler.c               |   2 +-
 drivers/gpu/drm/i915/i915_active.c                 |  99 ++++--
 drivers/gpu/drm/i915/i915_driver.c                 |   2 +-
 drivers/gpu/drm/i915/i915_drm_client.h             |   2 -
 drivers/gpu/drm/i915/i915_drv.h                    |   1 -
 drivers/gpu/drm/i915/i915_gpu_error.c              |   4 +-
 drivers/gpu/drm/i915/i915_perf.c                   |  14 +-
 drivers/gpu/drm/i915/i915_reg.h                    |  26 +-
 drivers/gpu/drm/i915/i915_request.c                |  13 +-
 drivers/gpu/drm/i915/i915_trace.h                  |  10 +-
 drivers/gpu/drm/i915/i915_vma.c                    |  15 +-
 drivers/gpu/drm/i915/pxp/intel_pxp.c               |   8 +-
 drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.c         |   2 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |   2 +-
 drivers/gpu/drm/i915/selftests/i915_selftest.c     |  31 ++
 drivers/gpu/drm/i915/selftests/igt_spinner.c       |  14 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |   2 +-
 70 files changed, 1553 insertions(+), 542 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_defines.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_tlb.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_tlb.h
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.c
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.h


More information about the dri-devel mailing list