[PATCH 07/10] drm/amdgpu/ttm: handle tt moves properly.

Christian König christian.koenig at amd.com
Thu Sep 24 09:48:00 UTC 2020


Am 24.09.20 um 02:46 schrieb Dave Airlie:
> On Thu, 24 Sep 2020 at 00:46, Christian König <christian.koenig at amd.com> wrote:
>> Am 23.09.20 um 05:04 schrieb Dave Airlie:
>>> From: Dave Airlie <airlied at redhat.com>
>>>
>>> The core move code currently handles use_tt moves, for amdgpu
>>> this was being handled also in the driver, but not using the same
>>> paths.
>>>
>>> If moving between TT/SYSTEM (all the use_tt paths on amdgpu) use
>>> the core move function.
>>>
>>> Eventually the core will be flipped over to calling the driver.
>>>
>>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>>> ---
>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 +++++++-----
>>>    1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>> index db5f761f37ec..d3bd2fd448be 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>> @@ -671,14 +671,16 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
>>>                ttm_bo_move_null(bo, new_mem);
>>>                return 0;
>>>        }
>>> -     if ((old_mem->mem_type == TTM_PL_TT &&
>>> -          new_mem->mem_type == TTM_PL_SYSTEM) ||
>>> -         (old_mem->mem_type == TTM_PL_SYSTEM &&
>>> -          new_mem->mem_type == TTM_PL_TT)) {
>>> -             /* bind is enough */
>>> +     if (old_mem->mem_type == TTM_PL_SYSTEM &&
>>> +         new_mem->mem_type == TTM_PL_TT) {
>>>                ttm_bo_move_null(bo, new_mem);
>> I would feel better if we nuke ttm_bo_move_null() and always use
>> ttm_bo_move_ttm().
> Any reason? The code path in the current move code pretty much
> is this.
>
> The current move paths are
>
> if (new_tt && old_tt)
>    if old is system
>       move null
>    else
>      move ttm
> else
>    call driver move.
>
> So I wanted to maintain that order. calling the move ttm will just
> make a pointless caching, populate, bind step.

Well we want to get rid of the bind/unbind stuff in TTM.

And I'm seriously thinking about getting rid of all the caching stuff.

So all of this should just go away rather soon.

Christian.

>
> But I'm going to think about it a bit more.
>
> Dave.



More information about the dri-devel mailing list