Re: [PATCH RFC v2 0/3] drm/ttm: allow direct reclaim to be skipped

From: Christian König

Date: Fri Sep 19 2025 - 02:46:51 EST


On 18.09.25 22:09, Thadeu Lima de Souza Cascardo wrote:
> On certain workloads, like on ChromeOS when opening multiple tabs and
> windows, and switching desktops, memory pressure can build up and latency
> is observed as high order allocations result in memory reclaim. This was
> observed when running on an amdgpu.
>
> This is caused by TTM pool allocations and turning off direct reclaim when
> doing those higher order allocations leads to lower memory pressure.
>
> Since turning direct reclaim off might also lead to lower throughput,
> make it tunable, both as a module parameter that can be changed in sysfs
> and as a flag when allocating a GEM object.
>
> A latency option will avoid direct reclaim for higher order allocations.
>
> The throughput option could be later used to more agressively compact pages
> or reclaim, by not using __GFP_NORETRY.

Well I can only repeat it, at least for amdgpu that is a clear NAK from my side to this.

The behavior to allocate huge pages is a must have for the driver.

The alternative I can offer is to disable the fallback which in your case would trigger the OOM killer.

Regards,
Christian.

>
> Other drivers can later opt to use this mechanism too.
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@xxxxxxxxxx>
> ---
> Changes in v2:
> - Make disabling direct reclaim an option.
> - Link to v1: https://lore.kernel.org/r/20250910-ttm_pool_no_direct_reclaim-v1-1-53b0fa7f80fa@xxxxxxxxxx
>
> ---
> Thadeu Lima de Souza Cascardo (3):
> ttm: pool: allow requests to prefer latency over throughput
> ttm: pool: add a module parameter to set latency preference
> drm/amdgpu: allow allocation preferences when creating GEM object
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++-
> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 ++-
> drivers/gpu/drm/ttm/ttm_pool.c | 23 +++++++++++++++++------
> drivers/gpu/drm/ttm/ttm_tt.c | 2 +-
> include/drm/ttm/ttm_bo.h | 5 +++++
> include/drm/ttm/ttm_pool.h | 2 +-
> include/drm/ttm/ttm_tt.h | 2 +-
> include/uapi/drm/amdgpu_drm.h | 9 +++++++++
> 8 files changed, 38 insertions(+), 11 deletions(-)
> ---
> base-commit: f83ec76bf285bea5727f478a68b894f5543ca76e
> change-id: 20250909-ttm_pool_no_direct_reclaim-ee0807a2d3fe
>
> Best regards,