]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: immediately use GTT for new allocations
authorChristian König <christian.koenig@amd.com>
Thu, 20 Mar 2025 13:46:18 +0000 (14:46 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2025 08:48:01 +0000 (10:48 +0200)
commit a755906fb2b8370c43e91ba437ae1b3e228e8b02 upstream.

Only use GTT as a fallback if we already have a backing store. This
prevents evictions when an application constantly allocates and frees new
memory.

Partially fixes
https://gitlab.freedesktop.org/drm/amd/-/issues/3844#note_2833985.

Signed-off-by: Christian König <christian.koenig@amd.com>
Fixes: 216c1282dde3 ("drm/amdgpu: use GTT only as fallback for VRAM|GTT")
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

index 971419e3a9bbdf2b95a68c24b09cefb597679f75..4c4bdc4f51b2943373e06bc63cf8d01e8a5de419 100644 (file)
@@ -161,8 +161,8 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
                 * When GTT is just an alternative to VRAM make sure that we
                 * only use it as fallback and still try to fill up VRAM first.
                 */
-               if (domain & abo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM &&
-                   !(adev->flags & AMD_IS_APU))
+               if (abo->tbo.resource && !(adev->flags & AMD_IS_APU) &&
+                   domain & abo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM)
                        places[c].flags |= TTM_PL_FLAG_FALLBACK;
                c++;
        }