Patrik Jakobsson 4e5fa0
From f04fef741336366f19fca2e3580c2cbf4f88b0e3 Mon Sep 17 00:00:00 2001
Patrik Jakobsson 4e5fa0
From: Eric Huang <jinhuieric.huang@amd.com>
Patrik Jakobsson 4e5fa0
Date: Mon, 14 Nov 2022 11:43:48 -0500
Patrik Jakobsson 4e5fa0
Subject: drm/amdkfd: Fix a memory limit issue
Patrik Jakobsson 4e5fa0
Git-commit: 6f9eea4392a178af19360694b1db64f985d0b459
Patrik Jakobsson 4e5fa0
Patch-mainline: v6.1-rc6
Patrik Jakobsson 4e5fa0
References: jsc#PED-1166 jsc#PED-1168 jsc#PED-1170 jsc#PED-1218 jsc#PED-1220 jsc#PED-1222 jsc#PED-1223 jsc#PED-1225 jsc#PED-2849
Patrik Jakobsson 4e5fa0
Patrik Jakobsson 4e5fa0
It is to resolve a regression, which fails to allocate
Patrik Jakobsson 4e5fa0
VRAM due to no free memory in application, the reason
Patrik Jakobsson 4e5fa0
is we add check of vram_pin_size for memory limit, and
Patrik Jakobsson 4e5fa0
application is pinning the memory for Peerdirect, KFD
Patrik Jakobsson 4e5fa0
should not count it in memory limit. So removing
Patrik Jakobsson 4e5fa0
vram_pin_size will resolve it.
Patrik Jakobsson 4e5fa0
Patrik Jakobsson 4e5fa0
Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Patrik Jakobsson 4e5fa0
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Patrik Jakobsson 4e5fa0
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Patrik Jakobsson 4e5fa0
Acked-by: Patrik Jakobsson <pjakobsson@suse.de>
Patrik Jakobsson 4e5fa0
---
Patrik Jakobsson 4e5fa0
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 4 +---
Patrik Jakobsson 4e5fa0
 1 file changed, 1 insertion(+), 3 deletions(-)
Patrik Jakobsson 4e5fa0
Patrik Jakobsson 4e5fa0
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
Patrik Jakobsson 4e5fa0
index 84f44f7e4111..6d1ff7b9258d 100644
Patrik Jakobsson 4e5fa0
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
Patrik Jakobsson 4e5fa0
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
Patrik Jakobsson 4e5fa0
@@ -171,9 +171,7 @@ int amdgpu_amdkfd_reserve_mem_limit(struct amdgpu_device *adev,
Patrik Jakobsson 4e5fa0
 	    (kfd_mem_limit.ttm_mem_used + ttm_mem_needed >
Patrik Jakobsson 4e5fa0
 	     kfd_mem_limit.max_ttm_mem_limit) ||
Patrik Jakobsson 4e5fa0
 	    (adev && adev->kfd.vram_used + vram_needed >
Patrik Jakobsson 4e5fa0
-	     adev->gmc.real_vram_size -
Patrik Jakobsson 4e5fa0
-	     atomic64_read(&adev->vram_pin_size) -
Patrik Jakobsson 4e5fa0
-	     reserved_for_pt)) {
Patrik Jakobsson 4e5fa0
+	     adev->gmc.real_vram_size - reserved_for_pt)) {
Patrik Jakobsson 4e5fa0
 		ret = -ENOMEM;
Patrik Jakobsson 4e5fa0
 		goto release;
Patrik Jakobsson 4e5fa0
 	}
Patrik Jakobsson 4e5fa0
-- 
Patrik Jakobsson 4e5fa0
2.38.1
Patrik Jakobsson 4e5fa0