[Intel-gfx] [PULL] drm-intel-gt-next

Joonas Lahtinen
2023-04-06T08:18:19Z

Hi Dave & Daniel,

Here goes the final drm-intel-gt-next pull request for v6.4.

As top items we have a fix for context runtime accounting, Meteorlake
enabling, DMAR error noise elimination due to GPU error capture, BAR
resizing forcewake fix and memory contents clearing fix for discrete.
More robust GuC loading on systems with IFWI that leaves GPU to slow
frequency and a potential UAF closed on perf add_config IOCTL.

There is also change to the uAPI headers to eliminate flexible-array
member kernel-wide request, which does not impact binaries and also
should not impact compilation.

Then the usual amount of smaller fixes and cleanups. A good amount of
kerneldoc fixes included.

Best Regards, Joonas

***

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

UAPI Changes:

- (Build-time only, should not have any impact)
drm/i915/uapi: Replace fake flex-array with flexible-array member

"Zero-length arrays as fake flexible arrays are deprecated and we are
moving towards adopting C99 flexible-array members instead."

This is on core kernel request moving towards GCC 13.

Driver Changes:

- Fix context runtime accounting on sysfs fdinfo for heavy workloads (Tvrtko)
- Add support for OA media units on MTL (Umesh)
- Add new workarounds for Meteorlake (Daniele, Radhakrishna, Haridhar)
- Fix sysfs to read actual frequency for MTL and Gen6 and earlier
(Ashutosh)
- Synchronize i915/BIOS on C6 enabling on MTL (Vinay)
- Fix DMAR error noise due to GPU error capture (Andrej)
- Fix forcewake during BAR resize on discrete (Andrzej)
- Flush lmem contents after construction on discrete (Chris)
- Fix GuC loading timeout on systems where IFWI programs low boot
frequency (John)
- Fix race condition UAF in i915_perf_add_config_ioctl (Min)

- Sanitycheck MMIO access early in driver load and during forcewake
(Matt)
- Wakeref fixes for GuC RC error scenario and active VM tracking (Chris)
- Cancel HuC delayed load timer on reset (Daniele)
- Limit double GT reset to pre-MTL (Daniele)
- Use i915 instead of dev_priv insied the file_priv structure (Andi)
- Improve GuC load error reporting (John)
- Simplify VCS/BSD engine selection logic (Tvrtko)
- Perform uc late init after probe error injection (Andrzej)
- Fix format for perf_limit_reasons in debugfs (Vinay)
- Create per-gt debugfs files (Andi)

- Documentation and kerneldoc fixes (Nirmoy, Lee)
- Selftest improvements (Fei, Jonathan)

The following changes since commit d2a9692ad4295e227e3352fdbf14b8491b01e1c9:

drm/i915/gt: make kobj attributes const (2023-03-15 12:20:11 +0200)

are available in the Git repository at:

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

for you to fetch changes up to 4b51210f98c2b89ce37aede5b8dc5105be0572c6:

drm/i915/mtl: Add Wa_14017856879 (2023-04-05 07:59:12 -0700)

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

- (Build-time only, should not have any impact)
drm/i915/uapi: Replace fake flex-array with flexible-array member

"Zero-length arrays as fake flexible arrays are deprecated and we are
moving towards adopting C99 flexible-array members instead."

This is on core kernel request moving towards GCC 13.

Driver Changes:

- Fix context runtime accounting on sysfs fdinfo for heavy workloads (Tvrtko)
- Add support for OA media units on MTL (Umesh)
- Add new workarounds for Meteorlake (Daniele, Radhakrishna, Haridhar)
- Fix sysfs to read actual frequency for MTL and Gen6 and earlier
(Ashutosh)
- Synchronize i915/BIOS on C6 enabling on MTL (Vinay)
- Fix DMAR error noise due to GPU error capture (Andrej)
- Fix forcewake during BAR resize on discrete (Andrzej)
- Flush lmem contents after construction on discrete (Chris)
- Fix GuC loading timeout on systems where IFWI programs low boot
frequency (John)
- Fix race condition UAF in i915_perf_add_config_ioctl (Min)

- Sanitycheck MMIO access early in driver load and during forcewake
(Matt)
- Wakeref fixes for GuC RC error scenario and active VM tracking (Chris)
- Cancel HuC delayed load timer on reset (Daniele)
- Limit double GT reset to pre-MTL (Daniele)
- Use i915 instead of dev_priv insied the file_priv structure (Andi)
- Improve GuC load error reporting (John)
- Simplify VCS/BSD engine selection logic (Tvrtko)
- Perform uc late init after probe error injection (Andrzej)
- Fix format for perf_limit_reasons in debugfs (Vinay)
- Create per-gt debugfs files (Andi)

- Documentation and kerneldoc fixes (Nirmoy, Lee)
- Selftest improvements (Fei, Jonathan)

----------------------------------------------------------------
Andi Shyti (3):
drm/i915/gt: Create per-gt debugfs files
drm/i915/debugfs: Enable upper layer interfaces to act on all gt's
drm/i915: Use i915 instead of dev_priv insied the file_priv structure

Andrzej Hajda (4):
drm/i915/gt: prevent forcewake releases during BAR resize
drm/i915/gt: introduce vm->scratch_range callback
drm/i915: add guard page to ggtt->error_capture
drm/i915/gt: perform uc late init after probe error injection

Ashutosh Dixit (1):
drm/i915/pmu: Use functions common with sysfs to read actual freq

Chris Wilson (3):
drm/i915/gem: Flush lmem contents after construction
drm/i915/perf: Drop wakeref on GuC RC error
drm/i915/gt: Hold a wakeref for the active VM

Daniele Ceraolo Spurio (3):
drm/i915/huc: Cancel HuC delayed load timer on reset.
drm/i915: limit double GT reset to pre-MTL
drm/i915/gsc: implement wa 14015076503

Fei Yang (1):
drm/i915/selftests: keep same cache settings as timeline

Gustavo A. R. Silva (1):
drm/i915/uapi: Replace fake flex-array with flexible-array member

Haridhar Kalvala (1):
drm/i915/mtl: Add Wa_14017856879

John Harrison (2):
drm/i915/guc: Improve GuC load error reporting
drm/i915/guc: Allow for very slow GuC loading

Jonathan Cavitt (1):
drm/i915/selftests: Drop igt_cs_tlb

Lee Jones (13):
drm/i915/i915_scatterlist: Fix kerneldoc formatting issue - missing '@'
drm/i915/intel_region_ttm: Provide missing description for 'offset' param
drm/i915/gt/intel_rps: Demote a kerneldoc abuse for ips_ping_for_i915_load()
drm/i915/gem/i915_gem_create: Provide the function names for proper kerneldoc headers
drm/i915/gem/i915_gem_domain: Provide function names to complete proper kerneldoc
drm/i915/gem/i915_gem_ttm_pm: Provide a couple of missing descriptions for 'flags' and remove some superfluous ones
drm/i915/gem/i915_gem_ttm: Demote half-filled kerneldoc
drm/i915/gem/i915_gem_ttm_move: Provide a couple of missing descriptions for 'num_pages' and 'ctx'
drm/i915/gem/i915_gem_wait: Provide function name to validate the kerneldoc header
drm/i915/gem/i915_gem_object: Demote non-kerneldoc header with no param descriptions
drm/i915/i915_gem: Provide function names to complete the expected kerneldoc format
drm/i915/gt/uc/intel_guc_hwconfig: Demote a few non-conforming kerneldoc headers
drm/i915/i915_vma: Provide one missing param and demote another non-kerneldoc header

Matt Roper (2):
drm/i915: Sanitycheck MMIO access early in driver load
drm/i915: Check for unreliable MMIO during forcewake

Min Li (1):
drm/i915: fix race condition UAF in i915_perf_add_config_ioctl

Nirmoy Das (1):
drm/i915/gt: Update engine_init_common documentation

Radhakrishna Sripada (2):
drm/i915/mtl: Add workarounds Wa_14017066071 and Wa_14017654203
drm/i915/mtl: Add Wa_22015279794

Tvrtko Ursulin (2):
drm/i915: Simplify vcs/bsd engine selection
drm/i915: Fix context runtime accounting

Umesh Nerlige Ramappa (10):
drm/i915/perf: Validate OA sseu config outside switch
drm/i915/perf: Group engines into respective OA groups
drm/i915/perf: Fail modprobe if i915_perf_init fails on OOM
drm/i915/perf: Parse 64bit report header formats correctly
drm/i915/perf: Handle non-power-of-2 reports
drm/i915/perf: Add engine class instance parameters to perf
drm/i915/perf: Add support for OA media units
drm/i915/perf: Pass i915 object to perf revision helper
drm/i915/perf: Wa_14017512683: Disable OAM if media C6 is enabled in BIOS
drm/i915/mtl: Disable C6 on MTL A0 for media

Vinay Belgaumkar (2):
drm/i915: Fix format for perf_limit_reasons
drm/i915/mtl: Synchronize i915/BIOS on C6 enabling

drivers/gpu/drm/i915/gem/i915_gem_context.c | 22 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 7 +-
drivers/gpu/drm/i915/gem/i915_gem_domain.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 10 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 3 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 5 +-
drivers/gpu/drm/i915/gem/i915_gem_wait.c | 2 +-
drivers/gpu/drm/i915/gt/intel_context.h | 15 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 +-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 9 +
drivers/gpu/drm/i915/gt/intel_engine_types.h | 10 +
.../gpu/drm/i915/gt/intel_execlists_submission.c | 12 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 43 +-
drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c | 1 +
drivers/gpu/drm/i915/gt/intel_gt.c | 4 +-
drivers/gpu/drm/i915/gt/intel_gt_debugfs.c | 4 +-
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 2 +-
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 9 +
drivers/gpu/drm/i915/gt/intel_gtt.h | 2 +
drivers/gpu/drm/i915/gt/intel_rc6.c | 27 +
drivers/gpu/drm/i915/gt/intel_rc6.h | 2 +
drivers/gpu/drm/i915/gt/intel_rc6_types.h | 2 +
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 25 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 119 ++++-
drivers/gpu/drm/i915/gt/intel_rps.c | 40 +-
drivers/gpu/drm/i915/gt/intel_rps.h | 4 +-
drivers/gpu/drm/i915/gt/intel_sseu.c | 3 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 19 +
drivers/gpu/drm/i915/gt/selftest_timeline.c | 14 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h | 17 +
drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.h | 2 +
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 +
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 141 ++++-
drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c | 6 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 7 +
drivers/gpu/drm/i915/gt/uc/intel_huc.h | 7 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c | 2 +
drivers/gpu/drm/i915/i915_debugfs.c | 36 +-
drivers/gpu/drm/i915/i915_driver.c | 4 +-
drivers/gpu/drm/i915/i915_drm_client.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 2 +
drivers/gpu/drm/i915/i915_file_private.h | 2 +-
drivers/gpu/drm/i915/i915_gem.c | 10 +-
drivers/gpu/drm/i915/i915_getparam.c | 2 +-
drivers/gpu/drm/i915/i915_pci.c | 1 +
drivers/gpu/drm/i915/i915_perf.c | 570 ++++++++++++++++-----
drivers/gpu/drm/i915/i915_perf.h | 4 +-
drivers/gpu/drm/i915/i915_perf_oa_regs.h | 78 +++
drivers/gpu/drm/i915/i915_perf_types.h | 75 ++-
drivers/gpu/drm/i915/i915_pmu.c | 10 +-
drivers/gpu/drm/i915/i915_reg.h | 14 +-
drivers/gpu/drm/i915/i915_scatterlist.c | 2 +-
drivers/gpu/drm/i915/i915_vma.c | 3 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_region_ttm.c | 1 +
drivers/gpu/drm/i915/intel_uncore.c | 47 +-
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 356 -------------
include/uapi/drm/i915_drm.h | 25 +-
63 files changed, 1241 insertions(+), 637 deletions(-)