[PATCH] drm/amdgpu: improve PRT syncing

Christian König deathsimple at vodafone.de
Wed Sep 13 07:03:25 UTC 2017


> Could you stop the clean for syncing? and wait we turn back 
> performance first?
Performance is not that important here, what we need is correct handling 
and to simplify the code first.

If the closed source UMD is concerned about the performance hit with per 
VM BOs it should simply revert to not using them.

Regards,
Christian.

Am 13.09.2017 um 04:20 schrieb zhoucm1:
> Could you stop the clean for syncing? and wait we turn back 
> performance first?
>
> Since you merge too kinds of fence to vm->last_update, we will be 
> difficult to optimize which fence can remove.
>
> Regards,
>
> David Zhou
>
>
> On 2017年09月12日 20:06, Christian König wrote:
>> From: Christian König <christian.koenig at amd.com>
>>
>> Just clean that up a bit more.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 -----
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 +-
>>   2 files changed, 1 insertion(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>> index b59749d..db5dbd3 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>> @@ -760,11 +760,6 @@ static int amdgpu_bo_vm_update_pte(struct 
>> amdgpu_cs_parser *p)
>>       if (r)
>>           return r;
>>   -    r = amdgpu_sync_fence(adev, &p->job->sync,
>> -                  fpriv->prt_va->last_pt_update);
>> -    if (r)
>> -        return r;
>> -
>>       if (amdgpu_sriov_vf(adev)) {
>>           struct dma_fence *f;
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> index 6b95ba6..2f577da 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> @@ -1768,7 +1768,7 @@ int amdgpu_vm_bo_update(struct amdgpu_device 
>> *adev,
>>       else
>>           flags = 0x0;
>>   -    if (clear || (bo && bo->tbo.resv == vm->root.base.bo->tbo.resv))
>> +    if (clear || !bo || bo->tbo.resv == vm->root.base.bo->tbo.resv)
>>           last_update = &vm->last_update;
>>       else
>>           last_update = &bo_va->last_pt_update;
>



More information about the amd-gfx mailing list