On Thu, Mar 27, 2025 at 10:29 AM Christian König
<[email protected]> wrote:
>
> 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.
>
Fixes: 216c1282dde3 ("drm/amdgpu: use GTT only as fallback for VRAM|GTT")
Acked-by: Alex Deucher <[email protected]>
> Signed-off-by: Christian König <[email protected]>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index d09db052e282..d90e9daf5a50 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -163,8 +163,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++;
> }
> --
> 2.34.1
>