From: Alex Deucher Date: Thu, 30 Jan 2025 20:20:05 +0000 (-0500) Subject: drm/amdkfd: use GTT for VRAM on APUs only if GTT is larger X-Git-Tag: v6.15-rc1~120^2~17^2~92 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=759e764f7d587283b4e0b01ff930faca64370e59;p=thirdparty%2Fkernel%2Flinux.git drm/amdkfd: use GTT for VRAM on APUs only if GTT is larger If the user has configured a large carveout on a small APU, only use GTT for VRAM allocations if GTT is larger than VRAM. v2: fix reversed check (Philip) Reviewed-by: Mario Limonciello Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index e68324ee4b259..bcb4bcc4ab751 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -1987,8 +1987,10 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) DRM_INFO("amdgpu: %uM of GTT memory ready.\n", (unsigned int)(gtt_size / (1024 * 1024))); - if (adev->flags & AMD_IS_APU) - adev->apu_prefer_gtt = true; + if (adev->flags & AMD_IS_APU) { + if (adev->gmc.real_vram_size < gtt_size) + adev->apu_prefer_gtt = true; + } /* Initialize doorbell pool on PCI BAR */ r = amdgpu_ttm_init_on_chip(adev, AMDGPU_PL_DOORBELL, adev->doorbell.size / PAGE_SIZE);