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 <[email protected]> > Reviewed-by: Dave Airlie <[email protected]> > [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 <[email protected]> > --- > 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 <[email protected]> > M: Arun Pravin <[email protected]> > R: Christian Koenig <[email protected]> > L: [email protected] > 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.
