[Mesa-dev] [PATCH 6/7] radeon: Rename bo_handles hashtable to match its actual contents.

Christopher James Halse Rogers christopher.halse.rogers at canonical.com
Wed Oct 9 18:11:03 PDT 2013


On Wed, Oct 9, 2013 at 8:40 PM, Marek Olšák <maraeo at gmail.com> wrote:
> bo_handles_mutex should also be renamed.
> 

The next patch uses this mutex to protect both the bo_names map and a 
new bo_handles map.

I could rename the mutex in this patch, and then unrename in the 
subsequent patch if you'd prefer, but this seems like a bit of 
busywork. 

Alternatively, if you can suggest a better name for ‘the mutex that 
protects the GEM name→bo and GEM handle→bo maps’, I'd be happy to 
use that instead.

> 
> Marek
> 
> On Tue, Oct 8, 2013 at 12:48 AM,
> <christopher.halse.rogers at canonical.com> wrote:
>>  From: Christopher James Halse Rogers <raof at ubuntu.com>
>> 
>>  It's a map of GEM name->bo, so identify it as such
>>  ---
>>   src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 16 ++++++++--------
>>   1 file changed, 8 insertions(+), 8 deletions(-)
>> 
>>  diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c 
>> b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
>>  index 44fb503..5ddbc00 100644
>>  --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
>>  +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
>>  @@ -114,8 +114,8 @@ struct radeon_bomgr {
>>       /* Winsys. */
>>       struct radeon_drm_winsys *rws;
>> 
>>  -    /* List of buffer handles and its mutex. */
>>  -    struct util_hash_table *bo_handles;
>>  +    /* List of buffer GEM names. Protected by bo_handles_mutex. */
>>  +    struct util_hash_table *bo_names;
>>       pipe_mutex bo_handles_mutex;
>>       pipe_mutex bo_va_mutex;
>> 
>>  @@ -372,7 +372,7 @@ static void radeon_bo_destroy(struct pb_buffer 
>> *_buf)
>> 
>>       if (bo->name) {
>>           pipe_mutex_lock(bo->mgr->bo_handles_mutex);
>>  -        util_hash_table_remove(bo->mgr->bo_handles,
>>  +        util_hash_table_remove(bo->mgr->bo_names,
>>                                  (void*)(uintptr_t)bo->name);
>>           pipe_mutex_unlock(bo->mgr->bo_handles_mutex);
>>       }
>>  @@ -660,7 +660,7 @@ static boolean 
>> radeon_bomgr_is_buffer_busy(struct pb_manager *_mgr,
>>   static void radeon_bomgr_destroy(struct pb_manager *_mgr)
>>   {
>>       struct radeon_bomgr *mgr = radeon_bomgr(_mgr);
>>  -    util_hash_table_destroy(mgr->bo_handles);
>>  +    util_hash_table_destroy(mgr->bo_names);
>>       pipe_mutex_destroy(mgr->bo_handles_mutex);
>>       pipe_mutex_destroy(mgr->bo_va_mutex);
>>       FREE(mgr);
>>  @@ -692,7 +692,7 @@ struct pb_manager *radeon_bomgr_create(struct 
>> radeon_drm_winsys *rws)
>>       mgr->base.is_buffer_busy = radeon_bomgr_is_buffer_busy;
>> 
>>       mgr->rws = rws;
>>  -    mgr->bo_handles = util_hash_table_create(handle_hash, 
>> handle_compare);
>>  +    mgr->bo_names = util_hash_table_create(handle_hash, 
>> handle_compare);
>>       pipe_mutex_init(mgr->bo_handles_mutex);
>>       pipe_mutex_init(mgr->bo_va_mutex);
>> 
>>  @@ -889,7 +889,7 @@ static struct pb_buffer 
>> *radeon_winsys_bo_from_handle(struct radeon_winsys *rws,
>>       pipe_mutex_lock(mgr->bo_handles_mutex);
>> 
>>       /* First check if there already is an existing bo for the 
>> handle. */
>>  -    bo = util_hash_table_get(mgr->bo_handles, 
>> (void*)(uintptr_t)whandle->handle);
>>  +    bo = util_hash_table_get(mgr->bo_names, 
>> (void*)(uintptr_t)whandle->handle);
>>       if (bo) {
>>           /* Increase the refcount. */
>>           struct pb_buffer *b = NULL;
>>  @@ -923,7 +923,7 @@ static struct pb_buffer 
>> *radeon_winsys_bo_from_handle(struct radeon_winsys *rws,
>>       bo->va = 0;
>>       pipe_mutex_init(bo->map_mutex);
>> 
>>  -    util_hash_table_set(mgr->bo_handles, 
>> (void*)(uintptr_t)whandle->handle, bo);
>>  +    util_hash_table_set(mgr->bo_names, 
>> (void*)(uintptr_t)whandle->handle, bo);
>> 
>>   done:
>>       pipe_mutex_unlock(mgr->bo_handles_mutex);
>>  @@ -989,7 +989,7 @@ static boolean 
>> radeon_winsys_bo_get_handle(struct pb_buffer *buffer,
>>               bo->flink = flink.name;
>> 
>>               pipe_mutex_lock(bo->mgr->bo_handles_mutex);
>>  -            util_hash_table_set(bo->mgr->bo_handles, 
>> (void*)(uintptr_t)bo->flink, bo);
>>  +            util_hash_table_set(bo->mgr->bo_names, 
>> (void*)(uintptr_t)bo->flink, bo);
>>               pipe_mutex_unlock(bo->mgr->bo_handles_mutex);
>>           }
>>           whandle->handle = bo->flink;
>>  --
>>  1.8.3.2
>> 
>>  _______________________________________________
>>  mesa-dev mailing list
>>  mesa-dev at lists.freedesktop.org
>>  http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> 



More information about the mesa-dev mailing list