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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux