]> git.dujemihanovic.xyz Git - linux.git/commitdiff
drm/amdgpu: Set GTT size equal to TTM mem limit
authorMukul Joshi <mukul.joshi@amd.com>
Tue, 25 Apr 2023 18:13:36 +0000 (14:13 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:24:46 +0000 (09:24 -0400)
Use the helper function in TTM to get TTM mem limit and
set GTT size to be equal to TTL mem limit.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index 02b827785e3998f7fa67e362cf4a87275115707f..957b18bda4a79b9d236fcfcbff3fb484c8c7fde0 100644 (file)
@@ -244,7 +244,6 @@ extern int amdgpu_sg_display;
 
 #define AMDGPU_VM_MAX_NUM_CTX                  4096
 #define AMDGPU_SG_THRESHOLD                    (256*1024*1024)
-#define AMDGPU_DEFAULT_GTT_SIZE_MB             3072ULL /* 3GB by default */
 #define AMDGPU_WAIT_IDLE_TIMEOUT_IN_MS         3000
 #define AMDGPU_MAX_USEC_TIMEOUT                        100000  /* 100 ms */
 #define AMDGPU_FENCE_JIFFIES_TIMEOUT           (HZ / 2)
index 2cd081cbf70621d0159a1cff5499070241a8d927..f61f07575f63bd5969cbe526187c379909be75e9 100644 (file)
@@ -1803,26 +1803,13 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
        DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
                 (unsigned) (adev->gmc.real_vram_size / (1024 * 1024)));
 
-       /* Compute GTT size, either based on 1/2 the size of RAM size
-        * or whatever the user passed on module init */
-       if (amdgpu_gtt_size == -1) {
-               struct sysinfo si;
-
-               si_meminfo(&si);
-               /* Certain GL unit tests for large textures can cause problems
-                * with the OOM killer since there is no way to link this memory
-                * to a process.  This was originally mitigated (but not necessarily
-                * eliminated) by limiting the GTT size.  The problem is this limit
-                * is often too low for many modern games so just make the limit 1/2
-                * of system memory which aligns with TTM. The OOM accounting needs
-                * to be addressed, but we shouldn't prevent common 3D applications
-                * from being usable just to potentially mitigate that corner case.
-                */
-               gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
-                              (u64)si.totalram * si.mem_unit / 2);
-       } else {
+       /* Compute GTT size, either based on TTM limit
+        * or whatever the user passed on module init.
+        */
+       if (amdgpu_gtt_size == -1)
+               gtt_size = ttm_tt_pages_limit() << PAGE_SHIFT;
+       else
                gtt_size = (uint64_t)amdgpu_gtt_size << 20;
-       }
 
        /* Initialize GTT memory pool */
        r = amdgpu_gtt_mgr_init(adev, gtt_size);