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

Joonas Lahtinen
2021-01-21T15:07:57Z

Hi Dave & Daniel,

Here is the final PR for v5.12.

One more fix for the clear residuals security mitigation.

Per-engine reset for Gen7 to avoid collateral damage when some
workloads misbehave, flip priority boosting when using explicit
fences (sync_file), improving suspend/freeze speed and avoiding
casual eviction of used framebuffers.

The rest is usual refactoring, cleanup and prep for upcoming
features.

Regards, Joonas

PS. There will be one warning due to duplicate Fixes: line (one pointing
to drm-intel-gt-next and other to drm-intel-fixes).

dim: ace44e13e577 ("drm/i915/gt: Clear CACHE_MODE prior to clearing residuals"): Fixes: SHA1 in not pointing at an ancestor:
dim: 09aa9e45863e ("drm/i915/gt: Restore clear-residual mitigations for Ivybridge, Baytrail")

I think it's fine to add in advance, assuming the -fixes has been pulled,
to avoid missing such patch. Otherwise the chance is that the tooling
misses picking the Fixes for Fixes which has happened in past.

***

drm-intel-gt-next-2021-01-21-1:

Cross-subsystem Changes:

- Includes gvt-gt-next-2021-01-18 + header check fix for GVT

Driver Changes:

- Fix for #2955: Clear potentially malicious register state before
executing clear residuals security mitigation (Chris)
- Fixes that lead to marking per-engine-reset as supported on Gen7
(Chris)
- Remove per-client stats from debugfs/i915_gem_objects) (Tvrtko, Chris)
- Add arbitration check before semaphore wait (Chris)
- Apply interactive priority to explicit flip fences (Chris)
- Make GEM errors non-fatal by default to help capturing logs during
development (Chris)
- Fix object page offset within a region in error capture (CQ, Matt A)
- Close race between enable_breadcrumbs and cancel_breadcrumbs (Chris)
- Almagamate clflushes on suspend/freeze to speed up S/R (Chris)
- Protect used framebuffers from casual eviction (Chris)

- Fix the sgt.pfn sanity check (Kui, Matt A)
- Reduce locking around i915_request.lock and ctx->engines_mutex (Chris)
- Simplify tracking for engine->fw_active and stats.active (Chris)
- Constrain pool objects by mapping type (Chris, Matt A)
- Use shrinkable status for unknown swizzle quirks (Chris)
- Do not suspend bonded requests if one hangs (Chris)
- Restore "Skip over completed active execlists" optimization (Chris)

- Move stolen node into GEM object union (Chris)
. Split gem_create into own file (Matt A)
- Convert object_create into object_init in LMEM region code (Matt A)
- Reduce test_and_set_bit to set_bit in i915_request_submit() (Chris)
- Mark up protected uses of 'i915_request_completed' (Chris)
- Remove extraneous inline modifiers (Chris)
- Add function to define defaults for GuC/HuC enable (John)

- Improve code locality by moving closer to single user (Matt A, Chris)
- Compiler warning fixes (Matt A, Chris)
- Selftest / CI improvements (Chris)

The following changes since commit fb5cfcaa2efbb4c71abb1dfbc8f4da727e0bfd89:

Merge tag 'drm-intel-gt-next-2021-01-14' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2021-01-15 15:03:36 +1000)

are available in the Git repository at:

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

for you to fetch changes up to 69b4b99842201bc24c98ba66b922d8879e190483:

drm/i915/gvt: Add missing forward decl of intel_vgpu for HDRTEST (2021-01-21 15:51:21 +0200)

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

- Includes gvt-gt-next-2021-01-18 + header check fix for GVT

Driver Changes:

- Fix for #2955: Clear potentially malicious register state before
executing clear residuals security mitigation (Chris)
- Fixes that lead to marking per-engine-reset as supported on Gen7
(Chris)
- Remove per-client stats from debugfs/i915_gem_objects) (Tvrtko, Chris)
- Add arbitration check before semaphore wait (Chris)
- Apply interactive priority to explicit flip fences (Chris)
- Make GEM errors non-fatal by default to help capturing logs during
development (Chris)
- Fix object page offset within a region in error capture (CQ, Matt A)
- Close race between enable_breadcrumbs and cancel_breadcrumbs (Chris)
- Almagamate clflushes on suspend/freeze to speed up S/R (Chris)
- Protect used framebuffers from casual eviction (Chris)

- Fix the sgt.pfn sanity check (Kui, Matt A)
- Reduce locking around i915_request.lock and ctx->engines_mutex (Chris)
- Simplify tracking for engine->fw_active and stats.active (Chris)
- Constrain pool objects by mapping type (Chris, Matt A)
- Use shrinkable status for unknown swizzle quirks (Chris)
- Do not suspend bonded requests if one hangs (Chris)
- Restore "Skip over completed active execlists" optimization (Chris)

- Move stolen node into GEM object union (Chris)
. Split gem_create into own file (Matt A)
- Convert object_create into object_init in LMEM region code (Matt A)
- Reduce test_and_set_bit to set_bit in i915_request_submit() (Chris)
- Mark up protected uses of 'i915_request_completed' (Chris)
- Remove extraneous inline modifiers (Chris)
- Add function to define defaults for GuC/HuC enable (John)

- Improve code locality by moving closer to single user (Matt A, Chris)
- Compiler warning fixes (Matt A, Chris)
- Selftest / CI improvements (Chris)

----------------------------------------------------------------
CQ Tang (1):
drm/i915/error: Fix object page offset within a region

Chris Wilson (34):
drm/i915/gt: Reapply ppgtt enabling after engine resets
drm/i915/gt: Prune 'inline' from execlists
drm/i915/gt: Prune inlines
drm/i915: Mark up protected uses of 'i915_request_completed'
drm/i915: Drop i915_request.lock serialisation around await_start
drm/i915/gem: Reduce ctx->engine_mutex for reading the clone source
drm/i915/gem: Reduce ctx->engines_mutex for get_engines()
drm/i915: Reduce test_and_set_bit to set_bit in i915_request_submit()
drm/i915/gt: Drop atomic for engine->fw_active tracking
drm/i915/gt: Extract busy-stats for ring-scheduler
drm/i915/gt: Convert stats.active to plain unsigned int
drm/i915/gt: Clear CACHE_MODE prior to clearing residuals
drm/i915/gt: Add arbitration check before semaphore wait
drm/i915: Add DEBUG_GEM to the recommended CI config
drm/i915: Make GEM errors non-fatal by default
drm/i915/gt: One more flush for Baytrail clear residuals
drm/i915/selftests: Prepare the selftests for engine resets with ring submission
drm/i915/gt: Lift stop_ring() to reset_prepare
drm/i915/gt: Disable the ring before resetting HEAD/TAIL
drm/i915/gt: Pull ring submission resume under its caller forcewake
drm/i915: Mark per-engine-reset as supported on gen7
drm/i915/gem: Remove per-client stats from debugfs/i915_gem_objects
drm/i915/gem: Make i915_gem_object_flush_write_domain() static
drm/i915/display: Apply interactive priority to explicit flip fences
drm/i915/gt: Close race between enable_breadcrumbs and cancel_breadcrumbs
drm/i915/gem: Almagamate clflushes on suspend
drm/i915/gem: Almagamate clflushes on freeze
drm/i915/gem: Move stolen node into GEM object union
drm/i915/gem: Use shrinkable status for unknown swizzle quirks
drm/i915/gem: Protect used framebuffers from casual eviction
drm/i915/gem: Drop lru bumping on display unpinning
drm/i915/gt: Do not suspend bonded requests if one hangs
drm/i915/gt: Skip over completed active execlists, again
drm/i915/gvt: Add missing forward decl of intel_vgpu for HDRTEST

John Harrison (1):
drm/i915/uc: Add function to define defaults for GuC/HuC enable

Joonas Lahtinen (2):
Merge drm/drm-next into drm-intel-gt-next
Merge tag 'gvt-gt-next-2021-01-18' of https://github.com/intel/gvt-linux into drm-intel-gt-next

Kui Wen (1):
drm/i915: Fix the sgt.pfn sanity check

Matthew Auld (7):
drm/i915/gem: split gem_create into own file
drm/i915/gem: sanity check object size in gem_create
drm/i915/region: convert object_create into object_init
drm/i915: add back static declaration
drm/i915: move i915_map_type into i915_gem_object_types.h
drm/i915/pool: constrain pool objects by mapping type
drm/i915/region: don't leak the object on error

Yan Zhao (11):
drm/i915/gvt: parse init context to update cmd accessible reg whitelist
drm/i915/gvt: scan VM ctx pages
drm/i915/gvt: filter cmds "srm" and "lrm" in cmd_handler
drm/i915/gvt: filter cmds "lrr-src" and "lrr-dst" in cmd_handler
drm/i915/gvt: filter cmd "pipe-ctrl" in cmd_handler
drm/i915/gvt: export find_mmio_info
drm/i915/gvt: make width of mmio_attribute bigger
drm/i915/gvt: introduce a new flag F_CMD_WRITE_PATCH
drm/i915/gvt: statically set F_CMD_WRITE_PATCH flag
drm/i915/gvt: update F_CMD_WRITE_PATCH flag when parsing init ctx
drm/i915/gvt: unify lri cmd handler and mmio handlers

drivers/gpu/drm/i915/Kconfig.debug | 22 +-
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/intel_display.c | 23 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 4 +-
drivers/gpu/drm/i915/display/intel_frontbuffer.c | 4 +-
drivers/gpu/drm/i915/display/intel_overlay.c | 4 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 65 ++--
drivers/gpu/drm/i915/gem/i915_gem_create.c | 113 +++++++
drivers/gpu/drm/i915/gem/i915_gem_domain.c | 104 +++----
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 13 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 15 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.h | 8 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 47 ---
drivers/gpu/drm/i915/gem/i915_gem_object.h | 36 ++-
drivers/gpu/drm/i915/gem/i915_gem_object_blt.c | 8 +-
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 19 +-
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 19 +-
drivers/gpu/drm/i915/gem/i915_gem_phys.c | 4 +-
drivers/gpu/drm/i915/gem/i915_gem_pm.c | 41 +--
drivers/gpu/drm/i915/gem/i915_gem_region.c | 16 +-
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 28 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 70 ++---
drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 2 +
drivers/gpu/drm/i915/gem/i915_gem_tiling.c | 12 +-
drivers/gpu/drm/i915/gem/i915_gem_wait.c | 46 ++-
drivers/gpu/drm/i915/gt/gen6_ppgtt.c | 15 +-
drivers/gpu/drm/i915/gt/gen7_renderclear.c | 23 +-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 4 +-
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 13 +-
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 13 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 16 +-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 12 +-
drivers/gpu/drm/i915/gt/intel_engine_stats.h | 60 ++++
drivers/gpu/drm/i915/gt/intel_engine_types.h | 6 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 145 ++++-----
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c | 12 +-
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.h | 3 +-
.../gpu/drm/i915/gt/intel_gt_buffer_pool_types.h | 4 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +-
drivers/gpu/drm/i915/gt/intel_mocs.c | 2 +-
drivers/gpu/drm/i915/gt/intel_ppgtt.c | 2 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 2 +-
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 2 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 5 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 2 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 209 ++++++-------
drivers/gpu/drm/i915/gt/intel_rps.c | 2 +-
drivers/gpu/drm/i915/gt/intel_timeline.c | 4 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 18 +-
drivers/gpu/drm/i915/gt/selftest_reset.c | 11 +-
drivers/gpu/drm/i915/gt/shmem_utils.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 31 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 7 +-
drivers/gpu/drm/i915/gvt/cmd_parser.c | 335 ++++++++++++++++-----
drivers/gpu/drm/i915/gvt/cmd_parser.h | 5 +
drivers/gpu/drm/i915/gvt/gvt.h | 37 ++-
drivers/gpu/drm/i915/gvt/handlers.c | 15 +-
drivers/gpu/drm/i915/gvt/mmio.h | 3 +
drivers/gpu/drm/i915/gvt/reg.h | 2 +
drivers/gpu/drm/i915/gvt/scheduler.c | 22 +-
drivers/gpu/drm/i915/gvt/vgpu.c | 4 +-
drivers/gpu/drm/i915/i915_cmd_parser.c | 2 +-
drivers/gpu/drm/i915/i915_debugfs.c | 144 +--------
drivers/gpu/drm/i915/i915_gem.c | 130 +-------
drivers/gpu/drm/i915/i915_gem.h | 9 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 13 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 4 +-
drivers/gpu/drm/i915/i915_mm.c | 2 +-
drivers/gpu/drm/i915/i915_params.h | 1 +
drivers/gpu/drm/i915/i915_pci.c | 5 +-
drivers/gpu/drm/i915/i915_request.c | 43 +--
drivers/gpu/drm/i915/i915_scheduler.c | 2 +-
drivers/gpu/drm/i915/i915_vma.h | 15 +
drivers/gpu/drm/i915/i915_vma_types.h | 3 +
drivers/gpu/drm/i915/intel_memory_region.h | 8 +-
drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 10 +-
drivers/gpu/drm/i915/selftests/mock_region.c | 19 +-
78 files changed, 1191 insertions(+), 997 deletions(-)
create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_create.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_stats.h
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org