[PATCH] drm/amdgpu: ttm_bind only when user needs gpu_addr in bo pin

Christian König deathsimple at vodafone.de
Wed Jul 12 08:13:05 UTC 2017


Am 12.07.2017 um 10:06 schrieb zhoucm1:
>
>
> On 2017年07月12日 15:54, Christian König wrote:
>> Looks like it makes sense, but why should that be useful?
> 1. when you set gart size 256M, the space is limit, so only bind gart 
> when necessary.
> 2. less cpu overhead with un-necessary statements.

Yeah, that was obvious. My question was rather where we actually use the 
function this way in the upstream driver :)

But searching the code a bit I stumbled over the prime handling which 
can make good use of that.

So patch is Reviewed-by: Christian König <christian.koenig at amd.com>.

Regards,
Christian.

>
> Regards,
> David Zhou
>>
>> Christian.
>>
>> Am 12.07.2017 um 06:38 schrieb Chunming Zhou:
>>> Change-Id: I282e1212346ed76470cadf39153109ab135f32f3
>>> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 +++++++------
>>>   1 file changed, 7 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>> index a0ad0e0..81c1486 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>> @@ -778,15 +778,16 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo 
>>> *bo, u32 domain,
>>>           dev_err(adev->dev, "%p pin failed\n", bo);
>>>           goto error;
>>>       }
>>> -    r = amdgpu_ttm_bind(&bo->tbo, &bo->tbo.mem);
>>> -    if (unlikely(r)) {
>>> -        dev_err(adev->dev, "%p bind failed\n", bo);
>>> -        goto error;
>>> -    }
>>>         bo->pin_count = 1;
>>> -    if (gpu_addr != NULL)
>>> +    if (gpu_addr != NULL) {
>>> +        r = amdgpu_ttm_bind(&bo->tbo, &bo->tbo.mem);
>>> +        if (unlikely(r)) {
>>> +            dev_err(adev->dev, "%p bind failed\n", bo);
>>> +            goto error;
>>> +        }
>>>           *gpu_addr = amdgpu_bo_gpu_offset(bo);
>>> +    }
>>>       if (domain == AMDGPU_GEM_DOMAIN_VRAM) {
>>>           adev->vram_pin_size += amdgpu_bo_size(bo);
>>>           if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS)
>>
>>
>
> _______________________________________________
> 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