intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Spin of Reduce GGTT display pinning latency.
@ 2024-03-06  5:19 Matthew Brost
  2024-03-06  5:19 ` [PATCH 1/4] drm/xe: Fix NULL check in xe_ggtt_init() Matthew Brost
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: Matthew Brost @ 2024-03-06  5:19 UTC (permalink / raw)
  To: intel-xe; +Cc: rodrigo.vivi, Matthew Brost

Verison of [1] with changes discussed in reviews, mainly the addition of
XE_BO_GGTT_INVALIDATE_BIT.

[1] https://patchwork.freedesktop.org/series/130739/

Maarten Lankhorst (2):
  drm/xe: Fix NULL check in xe_ggtt_init()
  drm/xe: Move xe_ggtt_invalidate out from ggtt->lock

Matthew Brost (2):
  drm/xe: Drop ggtt invalidate from display code
  drm/xe: Add XE_BO_GGTT_INVALIDATE_BIT flag

 drivers/gpu/drm/xe/display/xe_fb_pin.c |  5 ++---
 drivers/gpu/drm/xe/xe_bo.c             |  2 +-
 drivers/gpu/drm/xe/xe_bo.h             |  1 +
 drivers/gpu/drm/xe/xe_ggtt.c           | 25 +++++++++++++++----------
 drivers/gpu/drm/xe/xe_ggtt.h           |  4 ++--
 drivers/gpu/drm/xe/xe_guc_ads.c        |  3 ++-
 drivers/gpu/drm/xe/xe_guc_ct.c         |  3 ++-
 drivers/gpu/drm/xe/xe_guc_hwconfig.c   |  3 ++-
 drivers/gpu/drm/xe/xe_guc_log.c        |  3 ++-
 drivers/gpu/drm/xe/xe_guc_pc.c         |  3 ++-
 drivers/gpu/drm/xe/xe_hw_engine.c      |  3 ++-
 drivers/gpu/drm/xe/xe_lrc.c            |  3 ++-
 drivers/gpu/drm/xe/xe_memirq.c         |  1 +
 drivers/gpu/drm/xe/xe_sa.c             |  3 ++-
 drivers/gpu/drm/xe/xe_uc_fw.c          |  3 ++-
 15 files changed, 40 insertions(+), 25 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH 0/4] drm/xe: Reduce GGTT display pinning latency.
@ 2024-03-05 13:12 Maarten Lankhorst
  2024-03-05 13:12 ` [PATCH 4/4] drm/xe: Move xe_ggtt_invalidate out from ggtt->lock Maarten Lankhorst
  0 siblings, 1 reply; 17+ messages in thread
From: Maarten Lankhorst @ 2024-03-05 13:12 UTC (permalink / raw)
  To: intel-xe; +Cc: Maarten Lankhorst

Testing page flips I noticed 3 pain points in the GGTT code:
- Unnecessary taking force wakes (Brosts fix).
- display doesn't use GuC, so GuC invalidation can (hopefully) be
  skipped, saving 1 ms of latency.
- GuC invalidation should not be done with GGTT lock held, as it
  can be done at any time before the function returns.

This patch series solve those issues.

There are 3 potential optimizations untouched, but those don't touch
GGTT invalidation:
- In the case of pinning same FB, re-use xe_vma instead with
  refcounting, instead of allocating a new one.
- Preallocate the DPT bo when creating the framebuffer, to remove
  allocation latency in the pinning path.
- Attempt if write-combined GGTT PTE updates work again on newer
  platforms, and change writeq to writeq_relaxed, add flush at end.

Maarten Lankhorst (4):
  fix "drm/xe: Cleanup some layering in GGTT"
  drm/xe: Do not grab forcewakes when issuing GGTT TLB invalidation via
    GuC
  drm/xe: Do not perform GuC TLB invalidation for display GGTT
  drm/xe: Move xe_ggtt_invalidate out from ggtt->lock

 drivers/gpu/drm/xe/display/xe_fb_pin.c        | 10 ++++--
 drivers/gpu/drm/xe/display/xe_plane_initial.c |  3 +-
 drivers/gpu/drm/xe/xe_bo.h                    |  2 ++
 drivers/gpu/drm/xe/xe_bo_evict.c              |  5 +++
 drivers/gpu/drm/xe/xe_ggtt.c                  | 31 ++++++++-----------
 drivers/gpu/drm/xe/xe_ggtt.h                  |  4 +--
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c   |  2 ++
 7 files changed, 33 insertions(+), 24 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2024-03-15 16:08 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-06  5:19 [PATCH 0/4] Spin of Reduce GGTT display pinning latency Matthew Brost
2024-03-06  5:19 ` [PATCH 1/4] drm/xe: Fix NULL check in xe_ggtt_init() Matthew Brost
2024-03-06  5:20 ` [PATCH 2/4] drm/xe: Drop ggtt invalidate from display code Matthew Brost
2024-03-06  5:20 ` [PATCH 3/4] drm/xe: Add XE_BO_GGTT_INVALIDATE_BIT flag Matthew Brost
2024-03-06  5:20 ` [PATCH 4/4] drm/xe: Move xe_ggtt_invalidate out from ggtt->lock Matthew Brost
2024-03-06 18:39   ` Rodrigo Vivi
2024-03-06  5:24 ` ✓ CI.Patch_applied: success for Spin of Reduce GGTT display pinning latency Patchwork
2024-03-06  5:24 ` ✓ CI.checkpatch: " Patchwork
2024-03-06  5:25 ` ✓ CI.KUnit: " Patchwork
2024-03-06  5:36 ` ✓ CI.Build: " Patchwork
2024-03-06  5:38 ` ✓ CI.Hooks: " Patchwork
2024-03-06  5:39 ` ✓ CI.checksparse: " Patchwork
2024-03-06  6:06 ` ✓ CI.BAT: " Patchwork
2024-03-06 10:03 ` [PATCH 0/4] " Maarten Lankhorst
2024-03-15 16:08 ` Borah, Chaitanya Kumar
  -- strict thread matches above, loose matches on Subject: below --
2024-03-05 13:12 [PATCH 0/4] drm/xe: " Maarten Lankhorst
2024-03-05 13:12 ` [PATCH 4/4] drm/xe: Move xe_ggtt_invalidate out from ggtt->lock Maarten Lankhorst
2024-03-05 17:05   ` Matthew Brost

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).