Thread (74 messages) 74 messages, 9 authors, 2026-03-01

Re: [PATCH v10 2/8] gpu: Move DRM buddy allocator one level up (part two)

From: "Alexandre Courbot" <acourbot@nvidia.com>
Date: 2026-02-19 03:18:19
Also in: amd-gfx, dri-devel, intel-gfx, intel-xe, linux-doc, linux-fbdev, lkml, nouveau

On Thu Feb 19, 2026 at 5:55 AM JST, Joel Fernandes wrote:
Move the DRM buddy allocator one level up so that it can be used by GPU
drivers (example, nova-core) that have usecases other than DRM (such as
VFIO vGPU support). Modify the API, structures and Kconfigs to use
"gpu_buddy" terminology. Adapt the drivers and tests to use the new API.

The commit cannot be split due to bisectability, however no functional
change is intended. Verified by running K-UNIT tests and build tested
various configurations.
Patches 1 and 2 have the exact same commit log, but each one does only
part of it. Let's only keep the part of the log that applies to each
patch.
quoted hunk ↗ jump to hunk
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
[airlied: I've split this into two so git can find copies easier.
I've also just nuked drm_random library, that stuff needs to be done
elsewhere and only the buddy tests seem to be using it].
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 Documentation/gpu/drm-mm.rst                  |   6 +
 MAINTAINERS                                   |   8 +-
 drivers/gpu/Kconfig                           |  13 +
 drivers/gpu/Makefile                          |   1 +
 drivers/gpu/buddy.c                           | 556 +++++++++---------
 drivers/gpu/drm/Kconfig                       |   1 +
 drivers/gpu/drm/Makefile                      |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c       |   2 +-
 .../gpu/drm/amd/amdgpu/amdgpu_res_cursor.h    |  12 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c  |  79 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h  |  18 +-
 drivers/gpu/drm/drm_buddy.c                   |  77 +++
 drivers/gpu/drm/i915/i915_scatterlist.c       |   8 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c |  55 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |   4 +-
 .../drm/i915/selftests/intel_memory_region.c  |  20 +-
 .../gpu/drm/ttm/tests/ttm_bo_validate_test.c  |   4 +-
 drivers/gpu/drm/ttm/tests/ttm_mock_manager.c  |  18 +-
 drivers/gpu/drm/ttm/tests/ttm_mock_manager.h  |   2 +-
 drivers/gpu/drm/xe/xe_res_cursor.h            |  34 +-
 drivers/gpu/drm/xe/xe_svm.c                   |  12 +-
 drivers/gpu/drm/xe/xe_ttm_vram_mgr.c          |  71 +--
 drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h    |   2 +-
 drivers/gpu/tests/Makefile                    |   2 +-
 drivers/gpu/tests/gpu_buddy_test.c            | 412 ++++++-------
 drivers/gpu/tests/gpu_random.c                |  16 +-
 drivers/gpu/tests/gpu_random.h                |  18 +-
 drivers/video/Kconfig                         |   1 +
 include/drm/drm_buddy.h                       |  18 +
 include/linux/gpu_buddy.h                     | 120 ++--
 30 files changed, 853 insertions(+), 739 deletions(-)
 create mode 100644 drivers/gpu/Kconfig
 create mode 100644 drivers/gpu/drm/drm_buddy.c
 create mode 100644 include/drm/drm_buddy.h
diff --git a/Documentation/gpu/drm-mm.rst b/Documentation/gpu/drm-mm.rst
index ceee0e663237..32fb506db05b 100644
--- a/Documentation/gpu/drm-mm.rst
+++ b/Documentation/gpu/drm-mm.rst
@@ -532,6 +532,12 @@ Buddy Allocator Function References (GPU buddy)
 .. kernel-doc:: drivers/gpu/buddy.c
    :export:
 
+DRM Buddy Specific Logging Function References
+----------------------------------------------
+
+.. kernel-doc:: drivers/gpu/drm/drm_buddy.c
+   :export:
+
 DRM Cache Handling and Fast WC memcpy()
 =======================================
 
diff --git a/MAINTAINERS b/MAINTAINERS
index dc82a6bd1a61..14b4f9af0e36 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8905,15 +8905,17 @@ T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
 F:	drivers/gpu/drm/ttm/
 F:	include/drm/ttm/
 
-DRM BUDDY ALLOCATOR
+GPU BUDDY ALLOCATOR
 M:	Matthew Auld <matthew.auld@intel.com>
 M:	Arun Pravin <arunpravin.paneerselvam@amd.com>
 R:	Christian Koenig <christian.koenig@amd.com>
 L:	dri-devel@lists.freedesktop.org
 S:	Maintained
 T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
-F:	drivers/gpu/drm/drm_buddy.c
-F:	drivers/gpu/drm/tests/drm_buddy_test.c
+F:	drivers/gpu/drm_buddy.c
This line should be `drivers/gpu/drm/drm_buddy.c`.
+F:	drivers/gpu/buddy.c
+F:	drivers/gpu/tests/gpu_buddy_test.c
+F:	include/linux/gpu_buddy.h
These files have been moved in patch 1, so their MAINTAINERS entry
should also be modified there.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help