[PATCH] drm/amd/amdgpu: set gtt size according to system memory size only
Roger He
Hongbo.He at amd.com
Tue Nov 28 09:40:59 UTC 2017
Change-Id: Ib634375b90d875fe04a890fc82fb1e3b7112676a
Signed-off-by: Roger He <Hongbo.He at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 17bf0ce..d773c5e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1328,13 +1328,19 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
if (amdgpu_gtt_size == -1) {
struct sysinfo si;
+ uint64_t sys_mem_size;
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
+ sys_mem_size = (uint64_t)si.totalram * si.mem_unit;
+ gtt_size = AMDGPU_DEFAULT_GTT_SIZE_MB << 20;
+
+ /* leave 2GB for OS to work with */
+ if (sys_mem_size > (2ULL << 30)) {
+ gtt_size = max(gtt_size, sys_mem_size - (2ULL << 30));
+ } else
+ DRM_INFO("amdgpu: Too small system memory %llu MB\n",
+ sys_mem_size >> 20);
+ } else
gtt_size = (uint64_t)amdgpu_gtt_size << 20;
r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT, gtt_size >> PAGE_SHIFT);
if (r) {
--
2.7.4
More information about the amd-gfx
mailing list