[PATCH v5 3/6] drm/amdgpu: Evict BOs from same process for contiguous allocation

Felix Kuehling felix.kuehling at amd.com
Tue Apr 23 22:16:06 UTC 2024


On 2024-04-23 11:28, Philip Yang wrote:
> When TTM failed to alloc VRAM, TTM try evict BOs from VRAM to system
> memory then retry the allocation, this skips the KFD BOs from the same
> process because KFD require all BOs are resident for user queues.
>
> If TTM with TTM_PL_FLAG_CONTIGUOUS flag to alloc contiguous VRAM, allow
> TTM evict KFD BOs from the same process, this will evict the user queues
> first, and restore the queues later after contiguous VRAM allocation.
>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>

Reviewed-by: Felix Kuehling <felix.kuehling at amd.com>


> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 851509c6e90e..c907d6005641 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1398,7 +1398,8 @@ static bool amdgpu_ttm_bo_eviction_valuable(struct ttm_buffer_object *bo,
>   	 */
>   	dma_resv_for_each_fence(&resv_cursor, bo->base.resv,
>   				DMA_RESV_USAGE_BOOKKEEP, f) {
> -		if (amdkfd_fence_check_mm(f, current->mm))
> +		if (amdkfd_fence_check_mm(f, current->mm) &&
> +		    !(place->flags & TTM_PL_FLAG_CONTIGUOUS))
>   			return false;
>   	}
>   


More information about the amd-gfx mailing list