[PATCH] drm/amdgpu: band aid validating VM PTs

Christian König ckoenig.leichtzumerken at gmail.com
Thu Jun 21 14:57:51 UTC 2018


Am 21.06.2018 um 15:15 schrieb Huang Rui:
> On Wed, Jun 20, 2018 at 10:45:44PM +0800, Christian König wrote:
>> Am 20.06.2018 um 13:25 schrieb Huang Rui:
>>> On Tue, Jun 19, 2018 at 02:57:00PM +0200, Christian König wrote:
>>>> Always validating the VM PTs takes to much time. Only always validate
>>>> the per VM BOs for now.
>>> Christian, you delete PTE BO instead of moving them into idle list. The
>>> intention is to avoid them do evction back when do vm_validate_pt_bos,
>>> right?
>> No, the intention is to avoid the extra command submission overhead with
>> moving them on the LRU.
>>
> Thanks. I only see it's to decrease bo numbers in the lru list (man->lru).

Well, it doesn't decrease the number of BOs on the LRU list, but rather 
the number of times we move the BOs on the LRU.

> Is the extra command submission overhead caused by many times of evcition
> or bo validation cost (like the purpose of per-vm that to decrease the work
> of bo list parser).

Neither, it was caused by the many BOs we moved to the end of the LRU.

I should probably take another look into bulk moving them on the LRU 
instead of one by one.

Christian.

>
> Thanks,
> Ray
>
>> This messes the LRU for VMs up a bit, but that shouldn't matter much
>> because when we need to evict PTs the performance is not relevant
>> anymore anyway.
>>
>> Christian.
>>
>>> But in that function, I just see that it will walk over the idle list and
>>> move the bo into lru list, and didn't find the evction behaviour called
>>> explicitly. So why will it save the performance cost?
>>>
>>> Thanks,
>>> Ray
>>>
>>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>>> ---
>>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>> index 819949418495..7c30451ba897 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>> @@ -1082,7 +1082,7 @@ int amdgpu_vm_update_directories(struct amdgpu_device *adev,
>>>>    					   struct amdgpu_vm_bo_base,
>>>>    					   vm_status);
>>>>    		bo_base->moved = false;
>>>> -		list_move(&bo_base->vm_status, &vm->idle);
>>>> +		list_del_init(&bo_base->vm_status);
>>>>    
>>>>    		bo = bo_base->bo->parent;
>>>>    		if (!bo)
>>>> -- 
>>>> 2.14.1
>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx



More information about the amd-gfx mailing list