intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] drm/xe: Reduce GGTT display pinning latency.
@ 2024-03-05 13:12 Maarten Lankhorst
  2024-03-05 13:12 ` [PATCH 1/4] fix "drm/xe: Cleanup some layering in GGTT" Maarten Lankhorst
                   ` (10 more replies)
  0 siblings, 11 replies; 20+ 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] 20+ messages in thread

end of thread, other threads:[~2024-03-05 19:14 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-05 13:12 [PATCH 0/4] drm/xe: Reduce GGTT display pinning latency Maarten Lankhorst
2024-03-05 13:12 ` [PATCH 1/4] fix "drm/xe: Cleanup some layering in GGTT" Maarten Lankhorst
2024-03-05 14:42   ` Rodrigo Vivi
2024-03-05 15:10   ` Lucas De Marchi
2024-03-05 13:12 ` [PATCH 2/4] drm/xe: Do not grab forcewakes when issuing GGTT TLB invalidation via GuC Maarten Lankhorst
2024-03-05 14:43   ` Rodrigo Vivi
2024-03-05 18:57   ` Matthew Brost
2024-03-05 19:14     ` Rodrigo Vivi
2024-03-05 13:12 ` [PATCH 3/4] drm/xe: Do not perform GuC TLB invalidation for display GGTT Maarten Lankhorst
2024-03-05 14:46   ` Rodrigo Vivi
2024-03-05 17:09     ` Matthew Brost
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
2024-03-05 13:17 ` ✓ CI.Patch_applied: success for drm/xe: Reduce GGTT display pinning latency Patchwork
2024-03-05 13:18 ` ✓ CI.checkpatch: " Patchwork
2024-03-05 13:18 ` ✓ CI.KUnit: " Patchwork
2024-03-05 13:29 ` ✓ CI.Build: " Patchwork
2024-03-05 13:29 ` ✓ CI.Hooks: " Patchwork
2024-03-05 13:31 ` ✓ CI.checksparse: " Patchwork
2024-03-05 13:56 ` ✓ CI.BAT: " Patchwork

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).