drm/amd/amdgpu: not allow gtt size exceed 75%*system memory size
authorRoger He <Hongbo.He@amd.com>
Fri, 10 Nov 2017 11:05:13 +0000 (19:05 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Dec 2017 17:47:49 +0000 (12:47 -0500)
keep consistency with threshold of swapout

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Roger He <Hongbo.He@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index 44983d16bf611710c2ec3f84267b0fd930b4f695..b12a46fadb16daf58aebacda05c65f047a4d99ac 100644 (file)
@@ -1330,9 +1330,14 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
        DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
                 (unsigned) (adev->mc.real_vram_size / (1024 * 1024)));
 
-       if (amdgpu_gtt_size == -1)
-               gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
-                              adev->mc.mc_vram_size);
+       if (amdgpu_gtt_size == -1) {
+               struct sysinfo si;
+
+               si_meminfo(&si);
+               gtt_size = min(max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
+                              adev->mc.mc_vram_size),
+                              ((uint64_t)si.totalram * si.mem_unit * 3/4));
+       }
        else
                gtt_size = (uint64_t)amdgpu_gtt_size << 20;
        r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT, gtt_size >> PAGE_SHIFT);