[PATCH libdrm 6/6] amdgpu: always add all BOs to lockup table

Christian König ckoenig.leichtzumerken at gmail.com
Fri Aug 10 13:06:11 UTC 2018


Why should it? Adding the handle is now not more than setting an array 
entry.

I've tested with allocating 250k BOs of 4k size each and there wasn't 
any measurable performance differences.

Christian.

Am 09.08.2018 um 18:56 schrieb Marek Olšák:
> I don't think this is a good idea. Can you please explain why this
> won't cause performance regressions?
>
> Thanks
> Marek
>
> On Fri, Aug 3, 2018 at 7:34 AM, Christian König
> <ckoenig.leichtzumerken at gmail.com> wrote:
>> This way we can always find a BO structure by its handle.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>   amdgpu/amdgpu_bo.c | 14 ++++----------
>>   1 file changed, 4 insertions(+), 10 deletions(-)
>>
>> diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c
>> index 02592377..422c7c99 100644
>> --- a/amdgpu/amdgpu_bo.c
>> +++ b/amdgpu/amdgpu_bo.c
>> @@ -87,6 +87,10 @@ int amdgpu_bo_alloc(amdgpu_device_handle dev,
>>
>>          bo->handle = args.out.handle;
>>
>> +       pthread_mutex_lock(&bo->dev->bo_table_mutex);
>> +       r = handle_table_insert(&bo->dev->bo_handles, bo->handle, bo);
>> +       pthread_mutex_unlock(&bo->dev->bo_table_mutex);
>> +
>>          pthread_mutex_init(&bo->cpu_access_mutex, NULL);
>>
>>          if (r)
>> @@ -171,13 +175,6 @@ int amdgpu_bo_query_info(amdgpu_bo_handle bo,
>>          return 0;
>>   }
>>
>> -static void amdgpu_add_handle_to_table(amdgpu_bo_handle bo)
>> -{
>> -       pthread_mutex_lock(&bo->dev->bo_table_mutex);
>> -       handle_table_insert(&bo->dev->bo_handles, bo->handle, bo);
>> -       pthread_mutex_unlock(&bo->dev->bo_table_mutex);
>> -}
>> -
>>   static int amdgpu_bo_export_flink(amdgpu_bo_handle bo)
>>   {
>>          struct drm_gem_flink flink;
>> @@ -240,14 +237,11 @@ int amdgpu_bo_export(amdgpu_bo_handle bo,
>>                  return 0;
>>
>>          case amdgpu_bo_handle_type_kms:
>> -               amdgpu_add_handle_to_table(bo);
>> -               /* fall through */
>>          case amdgpu_bo_handle_type_kms_noimport:
>>                  *shared_handle = bo->handle;
>>                  return 0;
>>
>>          case amdgpu_bo_handle_type_dma_buf_fd:
>> -               amdgpu_add_handle_to_table(bo);
>>                  return drmPrimeHandleToFD(bo->dev->fd, bo->handle,
>>                                            DRM_CLOEXEC | DRM_RDWR,
>>                                            (int*)shared_handle);
>> --
>> 2.14.1
>>
>> _______________________________________________
>> 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