[PATCH] drm/amdgpu: don't limit gtt size on apus
Alex Deucher
alexdeucher at gmail.com
Tue Jan 5 22:10:38 UTC 2021
On Tue, Jan 5, 2021 at 5:05 PM Joshua Ashton <joshua at froggi.es> wrote:
>
> Since commit 24562523688b ("Revert "drm/amd/amdgpu: set gtt size
> according to system memory size only""), the GTT size was limited by
> 3GiB or VRAM size.
The commit in question was to fix a hang with certain tests on APUs.
That should be tested again before we re-enable this. If it is fixed,
we should just revert the revert rather than special case dGPUs.
Alex
>
> This is problematic on APUs, especially with a small carveout
> which can be as low as a fixed 128MiB, as there would be very a limited
> 3GiB available for video memory.
> This obviously does not meet the demands of modern applications.
>
> This patch makes it so the GTT size heuristic always uses 3/4ths of
> the system memory size on APUs (limiting the size by 3GiB/VRAM size
> only on devices with dedicated video memory).
>
> Fixes: 24562523688b ("Revert drm/amd/amdgpu: set gtt size according to
> system memory size only")
>
> Signed-off-by: Joshua Ashton <joshua at froggi.es>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 +++--
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 +++++++++---
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index 72efd579ec5e..a5a41e9272d6 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -192,8 +192,9 @@ module_param_named(gartsize, amdgpu_gart_size, uint, 0600);
>
> /**
> * DOC: gttsize (int)
> - * Restrict the size of GTT domain in MiB for testing. The default is -1 (It's VRAM size if 3GB < VRAM < 3/4 RAM,
> - * otherwise 3/4 RAM size).
> + * Restrict the size of GTT domain in MiB for testing. The default is -1 (On APUs this is 3/4th
> + * of the system memory; on dGPUs this is 3GiB or VRAM sized, whichever is bigger,
> + * with an upper bound of 3/4th of system memory.
> */
> MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)");
> module_param_named(gttsize, amdgpu_gtt_size, int, 0600);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 4d8f19ab1014..294f26f4f310 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1865,9 +1865,15 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
> struct sysinfo si;
>
> si_meminfo(&si);
> - gtt_size = min(max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> - adev->gmc.mc_vram_size),
> - ((uint64_t)si.totalram * si.mem_unit * 3/4));
> + gtt_size = (uint64_t)si.totalram * si.mem_unit * 3/4;
> + /* If we have dedicated memory, limit our GTT size to
> + * 3GiB or VRAM size, whichever is bigger
> + */
> + if (!(adev->flags & AMD_IS_APU)) {
> + gtt_size = min(max(AMDGPU_DEFAULT_GTT_SIZE_MB << 20,
> + adev->gmc.mc_vram_size),
> + gtt_size);
> + }
> }
> else
> gtt_size = (uint64_t)amdgpu_gtt_size << 20;
> --
> 2.30.0
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list