[PATCH] drm/amd/amdgpu: set gtt size according to system memory size only

He, Roger Hongbo.He at amd.com
Wed Nov 29 02:40:02 UTC 2017


-----Original Message-----
From: Koenig, Christian 
Sent: Tuesday, November 28, 2017 6:01 PM
To: He, Roger <Hongbo.He at amd.com>; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH] drm/amd/amdgpu: set gtt size according to system memory size only

Am 28.11.2017 um 10:40 schrieb Roger He:
> 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

No need for the "{}" here.

> +			DRM_INFO("amdgpu: Too small system memory %llu MB\n",
> +				sys_mem_size >> 20);
> +	} else

I have a preference to stick with the 75% rule similar to how TTM does things, but that isn't a hard opinion if you have a good argument.

[Roger]: originally I used the 75% rule as well. But for a special test case, test failed. Anyway, let's keep 75% here since seems it is more reasonable. And for the special test case, will use module parameter to change GTT size temporarily.


Thanks
Roger(Hongbo.He)




Regards,
Christian.

>   		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) {



More information about the amd-gfx mailing list