[AMD Official Use Only - General] I'll defer to Felix/Christian for the actual change, but a small typo in a comment: > -----Original Message----- > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Alex > Deucher > Sent: Friday, May 20, 2022 11:09 AM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx> > Subject: [PATCH] drm/amdgpu: Adjust logic around GTT size (v3) > > 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. 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. > > Set default GTT size to max(3G, 1/2 of system ram) by default. > > v2: drop previous logic and default to 3/4 of ram > v3: default to half of ram to align with ttm > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index d2b5cccb45c3..7195ed77c85a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -1798,18 +1798,26 @@ 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 bsaed on 3/4th the size of RAM size > + /* Compute GTT size, either bsaed on 1/2 the size of RAM size ^ s/bsaed/based Kent > * or whatever the user passed on module init */ > if (amdgpu_gtt_size == -1) { > 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)); > - } > - else > + /* 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 { > gtt_size = (uint64_t)amdgpu_gtt_size << 20; > + } > > /* Initialize GTT memory pool */ > r = amdgpu_gtt_mgr_init(adev, gtt_size); > -- > 2.35.3