mirror_ubuntu-kernels/drivers/gpu/drm/i915/gem
Vinay Belgaumkar cec82816d0 drm/i915/guc: Use context hints for GT frequency
Allow user to provide a low latency context hint. When set, KMD
sends a hint to GuC which results in special handling for this
context. SLPC will ramp the GT frequency aggressively every time
it switches to this context. The down freq threshold will also be
lower so GuC will ramp down the GT freq for this context more slowly.
We also disable waitboost for this context as that will interfere with
the strategy.

We need to enable the use of SLPC Compute strategy during init, but
it will apply only to contexts that set this bit during context
creation.

Userland can check whether this feature is supported using a new param-
I915_PARAM_HAS_CONTEXT_FREQ_HINT. This flag is true for all guc submission
enabled platforms as they use SLPC for frequency management.

The Mesa usage model for this flag is here -
https://gitlab.freedesktop.org/sushmave/mesa/-/commits/compute_hint

v2: Rename flags as per review suggestions (Rodrigo, Tvrtko).
Also, use flag bits in intel_context as it allows finer control for
toggling per engine if needed (Tvrtko).

v3: Minor review comments (Tvrtko)

v4: Update comment (Sushma)

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Ivan Briano <ivan.briano@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240306012759.204938-1-vinay.belgaumkar@intel.com
2024-03-07 10:25:06 -08:00
..
selftests drm/i915: Use kmap_local_page() in gem/selftests/i915_gem_context.c 2023-12-15 09:34:30 +00:00
i915_gem_busy.c
i915_gem_clflush.c drm/i915: add minimal i915_gem_object_frontbuffer.h 2023-08-31 18:41:34 +03:00
i915_gem_clflush.h
i915_gem_context_types.h drm/i915/guc: Use context hints for GT frequency 2024-03-07 10:25:06 -08:00
i915_gem_context.c drm/i915/guc: Use context hints for GT frequency 2024-03-07 10:25:06 -08:00
i915_gem_context.h
i915_gem_create.c drm/i915: Replace several IS_METEORLAKE with proper IP version checks 2023-08-21 16:57:36 -07:00
i915_gem_create.h
i915_gem_dmabuf.c drm: Don't assert held reservation lock for dma-buf mmapping 2023-06-21 20:22:20 +03:00
i915_gem_dmabuf.h
i915_gem_domain.c drm/i915: add minimal i915_gem_object_frontbuffer.h 2023-08-31 18:41:34 +03:00
i915_gem_domain.h
i915_gem_execbuffer.c drm/i915/gem: Atomically invalidate userptr on mmu-notifier 2023-12-19 16:56:39 +01:00
i915_gem_internal.c mm, treewide: redefine MAX_ORDER sanely 2023-04-05 19:42:46 -07:00
i915_gem_internal.h
i915_gem_ioctls.h
i915_gem_lmem.c drm/i915/gem: Flush lmem contents after construction 2023-03-23 12:25:50 +01:00
i915_gem_lmem.h
i915_gem_mman.c drm/i915: Retry gtt fault when out of fence registers 2023-10-16 18:46:50 +03:00
i915_gem_mman.h drm/i915: Add a function to mmap framebuffer obj 2023-04-06 18:20:35 +02:00
i915_gem_object_frontbuffer.h drm/i915: add minimal i915_gem_object_frontbuffer.h 2023-08-31 18:41:34 +03:00
i915_gem_object_types.h drm/i915: Add ability for tracking buffer objects per client 2023-11-10 11:48:50 +00:00
i915_gem_object.c drm/i915: Use kmap_local_page() in gem/i915_gem_object.c 2023-12-15 09:34:27 +00:00
i915_gem_object.h Merge drm/drm-next into drm-intel-next 2023-09-15 11:23:38 +03:00
i915_gem_pages.c drm/i915: Invalidate the TLBs on each GT 2023-10-03 18:54:20 +02:00
i915_gem_phys.c drm/i915: Use memcpy_[from/to]_page() in gem/i915_gem_pyhs.c 2023-12-15 09:34:28 +00:00
i915_gem_pm.c drm/i915/guc: Close deregister-context race against CT-loss 2024-01-09 09:33:08 -08:00
i915_gem_pm.h
i915_gem_region.c
i915_gem_region.h drm/i915/gem: fix function pointer member kernel-doc 2023-05-05 11:28:33 +03:00
i915_gem_shmem.c drm/i915: Use kmap_local_page() in gem/i915_gem_shmem.c 2023-12-15 09:34:28 +00:00
i915_gem_shrinker.c drm/i915/gem: Make i915_gem_shrinker multi-gt aware 2023-09-30 12:35:43 +02:00
i915_gem_shrinker.h
i915_gem_stolen.c drm/i915/mtl: Add Wa_14019821291 2023-11-01 15:57:13 -07:00
i915_gem_stolen.h drm/i915: Move stolen memory handling into i915_gem_stolen 2023-08-07 08:26:45 +03:00
i915_gem_throttle.c
i915_gem_tiling.c drm/i915: Fix potential bit_17 double-free 2023-01-30 15:48:25 -05:00
i915_gem_tiling.h
i915_gem_ttm_move.c drm/i915: use pat_index instead of cache_level 2023-05-11 17:38:55 +02:00
i915_gem_ttm_move.h
i915_gem_ttm_pm.c Merge tag 'drm-intel-gt-next-2023-04-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2023-04-06 14:21:00 +02:00
i915_gem_ttm_pm.h
i915_gem_ttm.c Merge tag 'drm-intel-gt-next-2023-04-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2023-04-06 14:21:00 +02:00
i915_gem_ttm.h drm/i915/ttm: fix i915_ttm_to_gem() kernel-doc 2023-05-05 11:29:01 +03:00
i915_gem_userptr.c drm/i915: Check before removing mm notifier 2024-02-28 13:11:32 +00:00
i915_gem_wait.c drm/i915: Avoid -Wconstant-logical-operand in nsecs_to_jiffies_timeout() 2023-07-27 13:01:28 -03:00
i915_gemfs.c
i915_gemfs.h