This series (or at least the suballocator helper) is a prerequisite for the new Xe driver. A variant of the series has been on review before, making the suballocator used by the amdgpu driver the generic one. However we ran into a number of issues on Xe when using it for context-less allocations, hence the comlplete rewrite with simplification in mind. More specifics in the patch commit message and in the code. There was an unresolved issue when the series was last up for review, and that was the per allocation aligment. Last message was from Maarten Lankhorst arguing that the larger per-driver alignment used would only incur a small memory cost. It would be good to have that resolved. The generic suballocator has been extensively tested with the Xe driver. The amd- and radeon adaptations are only compile-tested. Maarten Lankhorst (2): drm/amd: Convert amdgpu to use suballocation helper. drm/radeon: Use the drm suballocation manager implementation. Thomas Hellström (1): drm/suballoc: Introduce a generic suballocation manager drivers/gpu/drm/Kconfig | 5 + drivers/gpu/drm/Makefile | 3 + drivers/gpu/drm/amd/amdgpu/Kconfig | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 26 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 23 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 320 ++------------------- drivers/gpu/drm/drm_suballoc.c | 301 +++++++++++++++++++ drivers/gpu/drm/radeon/radeon.h | 55 +--- drivers/gpu/drm/radeon/radeon_ib.c | 12 +- drivers/gpu/drm/radeon/radeon_object.h | 25 +- drivers/gpu/drm/radeon/radeon_sa.c | 314 ++------------------ drivers/gpu/drm/radeon/radeon_semaphore.c | 6 +- include/drm/drm_suballoc.h | 112 ++++++++ 15 files changed, 518 insertions(+), 693 deletions(-) create mode 100644 drivers/gpu/drm/drm_suballoc.c create mode 100644 include/drm/drm_suballoc.h -- 2.34.1