Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] drm/xe: Make struct xe_ggtt private.
@ 2025-10-09 13:52 Maarten Lankhorst
  2025-10-09 13:52 ` [PATCH v4 1/6] drm/xe: Only have a single drmm release action Maarten Lankhorst
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2025-10-09 13:52 UTC (permalink / raw)
  To: intel-xe; +Cc: Maarten Lankhorst

SRIOV-VF node shifting code uses a complicated system with balloons
to limit allocation and size. Since size never changes after init,
shifting can simply be done by taking the the GGTT lock and then
moving each offset.

First introduce a function to shift an entire GGTT, this removes the
need for the balloons, then also perform the display code pinning
through a callback, and finally privatize the struct.

No other users outside of xe_ggtt remain, and we can make xe_ggtt private.

Rebased, no functional changes since v3.

Maarten Lankhorst (5):
  drm/xe: Only have a single drmm release action.
  drm/xe: Start using ggtt->start in preparation of balloon removal
  drm/xe: Rewrite GGTT VF initialisation
  drm/xe: Convert xe_fb_pin to use a callback for insertion into GGTT
  drm/xe: Move struct xe_ggtt to xe_ggtt.c

Tomasz Lis (1):
  drm/mm: Introduce address space shifting

 drivers/gpu/drm/drm_mm.c                    |  24 ++
 drivers/gpu/drm/xe/Makefile                 |   3 +-
 drivers/gpu/drm/xe/display/xe_fb_pin.c      | 111 +++---
 drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c |   2 +-
 drivers/gpu/drm/xe/xe_ggtt.c                | 357 ++++++++++----------
 drivers/gpu/drm/xe/xe_ggtt.h                |  16 +-
 drivers/gpu/drm/xe/xe_ggtt_types.h          |  53 +--
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c  |   4 +-
 drivers/gpu/drm/xe/xe_sriov_vf.c            |   4 +-
 drivers/gpu/drm/xe/xe_tile_sriov_vf.c       | 254 --------------
 drivers/gpu/drm/xe/xe_tile_sriov_vf.h       |  18 -
 include/drm/drm_mm.h                        |   1 +
 12 files changed, 276 insertions(+), 571 deletions(-)
 delete mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_vf.c
 delete mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_vf.h

-- 
2.51.0


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCH v4 0/6] drm/xe: Make struct xe_ggtt private.
@ 2024-10-09 12:51 Maarten Lankhorst
  2024-10-09 12:51 ` [PATCH v4 6/6] drm/xe: Move struct xe_ggtt to xe_ggtt.c Maarten Lankhorst
  0 siblings, 1 reply; 8+ messages in thread
From: Maarten Lankhorst @ 2024-10-09 12:51 UTC (permalink / raw)
  To: intel-xe; +Cc: Maarten Lankhorst

Sent as a separate series.

I have merged the patches to make pt_ops and ggtt private, and reworked xe_fb_pin.c

xe_fb_pin.c had the problem that some parts belong there, while others belong to xe_ggtt,
I'm hoping that with the callback function to populate the GGTT node, I've fixed the layering
violation that would have to happen otherwise.

I've solved it by creating a xe_ggtt_node_insert_transform() function that calls back into xe_fb_pin.c
to populate a given xe_ggtt_node. This way xe_fb_pin can still write a rotated GGTT, while outside
the scope of this function the details are hidden.

Writing DPT requires the same encoding as GGTT, but since it's a normal bo it only needs access to the
GGTT encoding function. With the insert transformation function being the only way to write to GGTT,
it should be safe to export the encoding only.

The display quirks stay in xe_fb_pin.c, while the details of GGTT stay in xe_ggtt.c now!

Maarten Lankhorst (6):
  drm/xe: Use xe_ggtt_map_bo_unlocked for resume
  drm/xe: Add xe_ggtt_might_lock
  drm/xe: Add xe_ggtt_alloc
  drm/xe: Convert xe_fb_pin to use a callback for insertion into GGTT
  drm/xe/display: Dont poke into GGTT internals to fill a DPT
  drm/xe: Move struct xe_ggtt to xe_ggtt.c

 drivers/gpu/drm/xe/display/xe_fb_pin.c        | 146 +++++++--------
 drivers/gpu/drm/xe/display/xe_plane_initial.c |   6 +-
 drivers/gpu/drm/xe/xe_bo.c                    |   2 +-
 drivers/gpu/drm/xe/xe_bo_evict.c              |   9 +-
 drivers/gpu/drm/xe/xe_ggtt.c                  | 171 ++++++++++++++++--
 drivers/gpu/drm/xe/xe_ggtt.h                  |  17 +-
 drivers/gpu/drm/xe/xe_ggtt_types.h            |  53 +-----
 drivers/gpu/drm/xe/xe_tile.c                  |   4 +-
 8 files changed, 245 insertions(+), 163 deletions(-)

-- 
2.45.2


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

end of thread, other threads:[~2025-10-09 13:52 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-09 13:52 [PATCH v4 0/6] drm/xe: Make struct xe_ggtt private Maarten Lankhorst
2025-10-09 13:52 ` [PATCH v4 1/6] drm/xe: Only have a single drmm release action Maarten Lankhorst
2025-10-09 13:52 ` [PATCH v4 2/6] drm/mm: Introduce address space shifting Maarten Lankhorst
2025-10-09 13:52 ` [PATCH v4 3/6] drm/xe: Start using ggtt->start in preparation of balloon removal Maarten Lankhorst
2025-10-09 13:52 ` [PATCH v4 4/6] drm/xe: Rewrite GGTT VF initialisation Maarten Lankhorst
2025-10-09 13:52 ` [PATCH v4 5/6] drm/xe: Convert xe_fb_pin to use a callback for insertion into GGTT Maarten Lankhorst
2025-10-09 13:52 ` [PATCH v4 6/6] drm/xe: Move struct xe_ggtt to xe_ggtt.c Maarten Lankhorst
  -- strict thread matches above, loose matches on Subject: below --
2024-10-09 12:51 [PATCH v4 0/6] drm/xe: Make struct xe_ggtt private Maarten Lankhorst
2024-10-09 12:51 ` [PATCH v4 6/6] drm/xe: Move struct xe_ggtt to xe_ggtt.c Maarten Lankhorst

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox