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

From: Alexandre Courbot

Date: Wed Feb 18 2026 - 22:18:33 EST


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.

>
> Signed-off-by: Joel Fernandes <joelagnelf@xxxxxxxxxx>
> Reviewed-by: Dave Airlie <airlied@xxxxxxxxxx>
> [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@xxxxxxxxxx>
> ---
> 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@xxxxxxxxx>
> M: Arun Pravin <arunpravin.paneerselvam@xxxxxxx>
> R: Christian Koenig <christian.koenig@xxxxxxx>
> L: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> 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.