[PATCH] drm/amdgpu: fix placement flags in amdgpu_ttm_bind

Felix Kuehling felix.kuehling at amd.com
Fri Sep 1 19:18:02 UTC 2017


Thanks for the fix. I still don't quite understand how this works. We
still call ttm_bo_move_ttm for a pinned BO. Maybe the function name is
misleading. As I understand it, this doesn't move the memory physically.
It just changes the GART address mapping? All that's needed is
maintaining the flags to ensure that the pinned BO stays off the LRU
lists and won't get swapped out?

Thanks,
  Felix


On 2017-09-01 03:24 AM, Christian König wrote:
> From: Christian König <christian.koenig at amd.com>
>
> Otherwise we lose the NO_EVICT flag and can try to evict pinned BOs.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index e9a0518..ac14c18 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -819,7 +819,7 @@ int amdgpu_ttm_bind(struct ttm_buffer_object *bo, struct ttm_mem_reg *bo_mem)
>  	placement.busy_placement = &placements;
>  	placements.fpfn = 0;
>  	placements.lpfn = adev->mc.gart_size >> PAGE_SHIFT;
> -	placements.flags = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT;
> +	placements.flags = bo->mem.placement | TTM_PL_FLAG_TT;
>  
>  	r = ttm_bo_mem_space(bo, &placement, &tmp, true, false);
>  	if (unlikely(r))



More information about the amd-gfx mailing list