[PATCH 3/3] drm/amdgpu: revert "Implement new dummy vram manager"
Felix Kuehling
felix.kuehling at amd.com
Wed Jun 25 16:32:24 UTC 2025
On 2025-06-06 08:57, Christian König wrote:
> This is should be unecessary since a VRAM manager isn't mandatory in
> the first place.
>
> It could be that we have some missing checks inside AMDGPU or TTM but
> those should then be fixed instead of worked around like that.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
Acked-by: Felix Kuehling <felix.kuehling at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 15 +++--
> drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 61 ++------------------
> 2 files changed, 13 insertions(+), 63 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 9c5df35f05b7..db7980105953 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1875,11 +1875,13 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
> }
> adev->mman.initialized = true;
>
> - /* Initialize VRAM pool with all of VRAM divided into pages */
> - r = amdgpu_vram_mgr_init(adev);
> - if (r) {
> - DRM_ERROR("Failed initializing VRAM heap.\n");
> - return r;
> + if (!adev->gmc.is_app_apu) {
> + /* Initialize VRAM pool with all of VRAM divided into pages */
> + r = amdgpu_vram_mgr_init(adev);
> + if (r) {
> + DRM_ERROR("Failed initializing VRAM heap.\n");
> + return r;
> + }
> }
>
> /* Change the size here instead of the init above so only lpfn is affected */
> @@ -2078,7 +2080,8 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
> drm_dev_exit(idx);
> }
>
> - amdgpu_vram_mgr_fini(adev);
> + if (!adev->gmc.is_app_apu)
> + amdgpu_vram_mgr_fini(adev);
> amdgpu_gtt_mgr_fini(adev);
> amdgpu_preempt_mgr_fini(adev);
> amdgpu_doorbell_fini(adev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> index abdc52b0895a..2032310446e7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> @@ -396,45 +396,6 @@ int amdgpu_vram_mgr_query_page_status(struct amdgpu_vram_mgr *mgr,
> return ret;
> }
>
> -static void amdgpu_dummy_vram_mgr_debug(struct ttm_resource_manager *man,
> - struct drm_printer *printer)
> -{
> - DRM_DEBUG_DRIVER("Dummy vram mgr debug\n");
> -}
> -
> -static bool amdgpu_dummy_vram_mgr_compatible(struct ttm_resource_manager *man,
> - struct ttm_resource *res,
> - const struct ttm_place *place,
> - size_t size)
> -{
> - DRM_DEBUG_DRIVER("Dummy vram mgr compatible\n");
> - return false;
> -}
> -
> -static bool amdgpu_dummy_vram_mgr_intersects(struct ttm_resource_manager *man,
> - struct ttm_resource *res,
> - const struct ttm_place *place,
> - size_t size)
> -{
> - DRM_DEBUG_DRIVER("Dummy vram mgr intersects\n");
> - return true;
> -}
> -
> -static void amdgpu_dummy_vram_mgr_del(struct ttm_resource_manager *man,
> - struct ttm_resource *res)
> -{
> - DRM_DEBUG_DRIVER("Dummy vram mgr deleted\n");
> -}
> -
> -static int amdgpu_dummy_vram_mgr_new(struct ttm_resource_manager *man,
> - struct ttm_buffer_object *tbo,
> - const struct ttm_place *place,
> - struct ttm_resource **res)
> -{
> - DRM_DEBUG_DRIVER("Dummy vram mgr new\n");
> - return -ENOSPC;
> -}
> -
> /**
> * amdgpu_vram_mgr_new - allocate new ranges
> *
> @@ -879,14 +840,6 @@ static void amdgpu_vram_mgr_debug(struct ttm_resource_manager *man,
> mutex_unlock(&mgr->lock);
> }
>
> -static const struct ttm_resource_manager_func amdgpu_dummy_vram_mgr_func = {
> - .alloc = amdgpu_dummy_vram_mgr_new,
> - .free = amdgpu_dummy_vram_mgr_del,
> - .intersects = amdgpu_dummy_vram_mgr_intersects,
> - .compatible = amdgpu_dummy_vram_mgr_compatible,
> - .debug = amdgpu_dummy_vram_mgr_debug
> -};
> -
> static const struct ttm_resource_manager_func amdgpu_vram_mgr_func = {
> .alloc = amdgpu_vram_mgr_new,
> .free = amdgpu_vram_mgr_del,
> @@ -919,16 +872,10 @@ int amdgpu_vram_mgr_init(struct amdgpu_device *adev)
> INIT_LIST_HEAD(&mgr->reserved_pages);
> mgr->default_page_size = PAGE_SIZE;
>
> - if (!adev->gmc.is_app_apu) {
> - man->func = &amdgpu_vram_mgr_func;
> -
> - err = drm_buddy_init(&mgr->mm, man->size, PAGE_SIZE);
> - if (err)
> - return err;
> - } else {
> - man->func = &amdgpu_dummy_vram_mgr_func;
> - DRM_INFO("Setup dummy vram mgr\n");
> - }
> + man->func = &amdgpu_vram_mgr_func;
> + err = drm_buddy_init(&mgr->mm, man->size, PAGE_SIZE);
> + if (err)
> + return err;
>
> ttm_set_driver_manager(&adev->mman.bdev, TTM_PL_VRAM, &mgr->manager);
> ttm_resource_manager_set_used(man, true);
More information about the amd-gfx
mailing list