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

Joonas Lahtinen
2021-05-28T07:26:12Z

Hi Dave & Daniel,

Here's drm-intel-gt-next pull request.

Most notably it has the reworked DG1 uAPI (behind CONFIG_BROKEN)
as requested. Important fix for Gitlab issues #3293 and #3450 and
one another kernel crash. Adds missing workarounds for Gen11 and
Gen12. Hiding of modparams for compiled-out features. Conversion
to use trylock shrinking for BSW VT-d and BXT.

Then there are the uAPI kerneldoc improvements as part of the DG1
uAPI rework. Usual amount smaller fixes, code refactoring and
cleanups as prep for upcoming patches.

Regards, Joonas

***

drm-intel-gt-next-2021-05-28:

UAPI Changes:
- Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)

Driver Changes:

- Fix for Gitlab issues #3293 and #3450:
Avoid kernel crash on older L-shape memory machines

- Hide modparams for compiled-out features (Tvrtko)
- Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
- Fix crash in auto_retire active retire callback due to
misalignment (Stephane)
- Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
- Fix overlay active retire callback alignment (Tvrtko)
- Eliminate need to align active retire callbacks (Matt A, Ville,
Daniel)
- Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
- Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
- Create stolen memory region from local memory on DG1 (CQ)
- Place PD in LMEM on dGFX (Matt A)
- Use WC when default state object is allocated in LMEM (Venkata)
- Determine the coherent map type based on object location (Venkata)
- Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
- Bypass aperture on fbdev when LMEM is available (Anusha)
- Return error value when displayable BO not in LMEM for dGFX (Mohammed)
- Do release kernel context if breadcrumb measure fails (Janusz)
- Apply Wa_22010271021 for all Gen11 platforms (Caz)
- Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
- Check actual RC6 enable status in PMU (Tvrtko)
- Fix a double free in gen8_preallocate_top_level_pdp (Lv)
- Remove erroneous i915_is_ggtt check for
I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)

- Convert uAPI headers to real kerneldoc (Matt A)
- Clean up kerneldoc warnings headers (Matt A, Maarten)
- Fail driver if LMEM training failed (Matt R)
- Avoid div-by-zero on Gen2 (Ville)
- Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
- Remove reference to struct drm_device.pdev (Thomas)
- Increase separation between GuC and execlists code (Chris, Matt B)

- Use might_alloc() (Bernard)
- Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
- Deduplicate Wa_22010271021 programming on (Jose)
- Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
- Selftest improvements (Chris, Hsin-Yi, Tvrtko)
- Shuffle around init_memory_region for stolen (Matt)
- Typo fixes (wengjianfeng)

The following changes since commit 425390c5dce6da76578389629d19517fcd79c959:

drm/i915: split dgfx features from gen 12 (2021-04-14 13:05:06 +0300)

are available in the Git repository at:

git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2021-05-28

for you to fetch changes up to 5b26d57fdb499c2363f3d895ef008e73ec02eb9b:

drm/i915: Add Wa_14010733141 (2021-05-27 11:05:09 -0700)

----------------------------------------------------------------
UAPI Changes:
- Add reworked uAPI for DG1 behind CONFIG_BROKEN (Matt A, Abdiel)

Driver Changes:

- Fix for Gitlab issues #3293 and #3450:
Avoid kernel crash on older L-shape memory machines

- Add Wa_14010733141 (VDBox SFC reset) for Gen11+ (Aditya)
- Fix crash in auto_retire active retire callback due to
misalignment (Stephane)
- Fix overlay active retire callback alignment (Tvrtko)
- Eliminate need to align active retire callbacks (Matt A, Ville,
Daniel)
- Program FF_MODE2 tuning value for all Gen12 platforms (Caz)
- Add Wa_14011060649 for TGL,RKL,DG1 and ADLS (Swathi)
- Create stolen memory region from local memory on DG1 (CQ)
- Place PD in LMEM on dGFX (Matt A)
- Use WC when default state object is allocated in LMEM (Venkata)
- Determine the coherent map type based on object location (Venkata)
- Use lmem physical addresses for fb_mmap() on discrete (Mohammed)
- Bypass aperture on fbdev when LMEM is available (Anusha)
- Return error value when displayable BO not in LMEM for dGFX (Mohammed)
- Do release kernel context if breadcrumb measure fails (Janusz)
- Hide modparams for compiled-out features (Tvrtko)
- Apply Wa_22010271021 for all Gen11 platforms (Caz)
- Fix unlikely ref count race in arming the watchdog timer (Tvrtko)
- Check actual RC6 enable status in PMU (Tvrtko)
- Fix a double free in gen8_preallocate_top_level_pdp (Lv)
- Use trylock in shrinker for GGTT on BSW VT-d and BXT (Maarten)
- Remove erroneous i915_is_ggtt check for
I915_GEM_OBJECT_UNBIND_VM_TRYLOCK (Maarten)

- Convert uAPI headers to real kerneldoc (Matt A)
- Clean up kerneldoc warnings headers (Matt A, Maarten)
- Fail driver if LMEM training failed (Matt R)
- Avoid div-by-zero on Gen2 (Ville)
- Read C0DRB3/C1DRB3 as 16 bits again and add _BW suffix (Ville)
- Remove reference to struct drm_device.pdev (Thomas)
- Increase separation between GuC and execlists code (Chris, Matt B)

- Use might_alloc() (Bernard)
- Split DGFX_FEATURES from GEN12_FEATURES (Lucas)
- Deduplicate Wa_22010271021 programming on (Jose)
- Drop duplicate WaDisable4x2SubspanOptimization:hsw (Tvrtko)
- Selftest improvements (Chris, Hsin-Yi, Tvrtko)
- Shuffle around init_memory_region for stolen (Matt)
- Typo fixes (wengjianfeng)

----------------------------------------------------------------
Abdiel Janulgue (1):
drm/i915/query: Expose memory regions through the query uAPI

Aditya Swarup (1):
drm/i915: Add Wa_14010733141

Anusha Srivatsa (1):
drm/i915/lmem: Bypass aperture when lmem is available

Bernard Zhao (1):
drm/i915: Use might_alloc()

CQ Tang (2):
drm/i915: Create stolen memory region from local memory
drm/i915/stolen: enforce the min_page_size contract

Caz Yokoyama (2):
drm/i915/gen12: Add recommended hardware tuning value
drm/i915/icl: add Wa_22010271021 for all gen11

Chris Wilson (6):
drm/i915/selftests: Skip aperture remapping selftest where there is no aperture
drm/i915/selftests: Only query RAPL for integrated power measurements
drm/i915/gem: Pin the L-shape quirked object as unshrinkable
drm/i915/gt: Move engine setup out of set_default_submission
drm/i915/gt: Move submission_method into intel_gt
drm/i915/gt: Move CS interrupt handler to the backend

Hsin-Yi Wang (1):
drm/i915/selftests: Rename pm_ prefixed functions names

Janusz Krzysztofik (1):
drm/i915/gt: Do release kernel context if breadcrumb measure fails

Joonas Lahtinen (1):
Merge tag 'topic/intel-gen-to-ver-2021-04-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next

José Roberto de Souza (1):
drm/i915: Move Wa_16011163337 to gen12_ctx_workarounds_init()

Lv Yunlong (1):
drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp

Maarten Lankhorst (4):
drm/i915: Fix docbook descriptions for i915_gem_shrinker
drm/i915: Fix docbook descriptions for i915_cmd_parser
drm/i915: Use trylock in shrinker for ggtt on bsw vt-d and bxt, v2.
drm/i915: Remove erroneous i915_is_ggtt check for I915_GEM_OBJECT_UNBIND_VM_TRYLOCK

Matt Roper (1):
drm/i915/lmem: Fail driver init if LMEM training failed

Matthew Auld (19):
drm/i915/uapi: fix kernel doc warnings
drm/i915/uapi: convert i915_user_extension to kernel doc
drm/i915/uapi: convert i915_query and friend to kernel doc
drm/doc: add section for driver uAPI
drm/i915/stolen: treat stolen local as normal local memory
drm/i915/stolen: actually mark as contiguous
drm/i915/gtt: map the PD up front
drm/i915/gtt/dgfx: place the PD in LMEM
drm/doc/rfc: i915 DG1 uAPI
drm/i915: mark stolen as private
drm/i915: rework gem_create flow for upcoming extensions
drm/i915/uapi: introduce drm_i915_gem_create_ext
drm/i915/uapi: implement object placement extension
drm/i915/lmem: support optional CPU clearing for special internal use
drm/i915/gem: clear userspace buffers for LMEM
drm/i915/gem: hide new uAPI behind CONFIG_BROKEN
drm/i915: drop the __i915_active_call pointer packing
drm/i915/stolen: shuffle around init_memory_region
drm/doc/rfc: drop the i915_gem_lmem.h header

Mohammed Khajapasha (2):
drm/i915/fbdev: Use lmem physical addresses for fb_mmap() on discrete
drm/i915: Return error value when bo not in LMEM for discrete

Stéphane Marchesin (1):
drm/i915: Fix crash in auto_retire

Swathi Dhanavanthri (1):
drm/i915: Add Wa_14011060649

Thomas Zimmermann (1):
drm/i915/gem: Remove reference to struct drm_device.pdev

Tvrtko Ursulin (6):
drm/i915: Take request reference before arming the watchdog timer
drm/i915/pmu: Check actual RC6 status
drm/i915/overlay: Fix active retire callback alignment
drm/i915/selftests: Fix active retire callback alignment
drm/i915: Drop duplicate WaDisable4x2SubspanOptimization:hsw
drm/i915/params: Align visibility of device level and global modparams

Venkata Ramana Nayana (1):
drm/i915/dg1: Fix mapping type for default state object

Venkata Sandeep Dhanalakota (1):
drm/i915: Update the helper to set correct mapping

Ville Syrjälä (3):
drm/i915: Avoid div-by-zero on gen2
drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
drm/i915: Give C0DRB3/C1DRB3 a _BW suffix

wengjianfeng (1):
drm/i915/gt: fix typo issue

Documentation/gpu/driver-uapi.rst | 8 +
Documentation/gpu/index.rst | 1 +
Documentation/gpu/rfc/i915_gem_lmem.rst | 131 +++++++
Documentation/gpu/rfc/index.rst | 4 +
drivers/gpu/drm/i915/display/intel_display.c | 10 +
drivers/gpu/drm/i915/display/intel_fbdev.c | 51 ++-
drivers/gpu/drm/i915/display/intel_frontbuffer.c | 4 +-
drivers/gpu/drm/i915/display/intel_overlay.c | 5 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 3 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 345 ++++++++++++++++--
drivers/gpu/drm/i915/gem/i915_gem_ioctls.h | 2 +
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 20 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.h | 5 +
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 2 +
drivers/gpu/drm/i915/gem/i915_gem_region.c | 22 ++
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 159 +++++++--
drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 3 +-
.../gpu/drm/i915/gem/selftests/i915_gem_context.c | 11 +-
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 26 ++
drivers/gpu/drm/i915/gt/gen6_ppgtt.c | 13 +-
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 32 +-
drivers/gpu/drm/i915/gt/intel_context.c | 3 +-
drivers/gpu/drm/i915/gt/intel_engine.h | 8 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 21 +-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 2 +-
drivers/gpu/drm/i915/gt/intel_engine_types.h | 14 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 95 +++--
.../gpu/drm/i915/gt/intel_execlists_submission.h | 3 -
drivers/gpu/drm/i915/gt/intel_ggtt.c | 10 +-
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 6 +-
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c | 3 +-
drivers/gpu/drm/i915/gt/intel_gt_irq.c | 82 ++---
drivers/gpu/drm/i915/gt/intel_gt_irq.h | 23 ++
drivers/gpu/drm/i915/gt/intel_gt_types.h | 7 +
drivers/gpu/drm/i915/gt/intel_gtt.c | 91 +++--
drivers/gpu/drm/i915/gt/intel_gtt.h | 12 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +-
drivers/gpu/drm/i915/gt/intel_ppgtt.c | 7 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 201 +++++++----
drivers/gpu/drm/i915/gt/intel_ring.c | 11 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 12 +-
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 | 100 ++++--
drivers/gpu/drm/i915/gt/mock_engine.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_context.c | 3 +-
.../gpu/drm/i915/gt/selftest_engine_heartbeat.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_execlists.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 4 +-
drivers/gpu/drm/i915/gt/selftest_lrc.c | 4 +-
drivers/gpu/drm/i915/gt/selftest_rc6.c | 32 +-
drivers/gpu/drm/i915/gt/selftest_ring_submission.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_rps.c | 6 +-
drivers/gpu/drm/i915/gt/shmem_utils.c | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 64 ++--
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h | 1 -
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 4 +-
drivers/gpu/drm/i915/i915_active.c | 11 +-
drivers/gpu/drm/i915/i915_active.h | 11 +-
drivers/gpu/drm/i915/i915_active_types.h | 5 -
drivers/gpu/drm/i915/i915_cmd_parser.c | 18 +-
drivers/gpu/drm/i915/i915_debugfs.c | 4 +-
drivers/gpu/drm/i915/i915_drv.c | 1 +
drivers/gpu/drm/i915/i915_drv.h | 29 +-
drivers/gpu/drm/i915/i915_gem.c | 25 +-
drivers/gpu/drm/i915/i915_irq.c | 10 +-
drivers/gpu/drm/i915/i915_params.h | 8 +-
drivers/gpu/drm/i915/i915_pci.c | 2 +-
drivers/gpu/drm/i915/i915_perf.c | 10 +-
drivers/gpu/drm/i915/i915_pmu.c | 4 +-
drivers/gpu/drm/i915/i915_query.c | 62 ++++
drivers/gpu/drm/i915/i915_reg.h | 17 +-
drivers/gpu/drm/i915/i915_request.c | 5 +-
drivers/gpu/drm/i915/i915_vma.c | 31 +-
drivers/gpu/drm/i915/intel_memory_region.c | 29 +-
drivers/gpu/drm/i915/intel_memory_region.h | 18 +-
drivers/gpu/drm/i915/intel_uncore.c | 12 +
drivers/gpu/drm/i915/selftests/i915_active.c | 2 +-
drivers/gpu/drm/i915/selftests/i915_gem.c | 20 +-
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 10 +-
drivers/gpu/drm/i915/selftests/i915_perf.c | 3 +-
drivers/gpu/drm/i915/selftests/i915_vma.c | 3 +
drivers/gpu/drm/i915/selftests/igt_spinner.c | 4 +-
.../gpu/drm/i915/selftests/intel_memory_region.c | 87 ++++-
drivers/gpu/drm/i915/selftests/librapl.c | 10 +
drivers/gpu/drm/i915/selftests/librapl.h | 4 +
include/uapi/drm/i915_drm.h | 393 +++++++++++++++++++--
92 files changed, 2018 insertions(+), 575 deletions(-)
create mode 100644 Documentation/gpu/driver-uapi.rst
create mode 100644 Documentation/gpu/rfc/i915_gem_lmem.rst
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org