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

Marek Olšák maraeo at gmail.com
Thu Oct 10 04:21:34 PDT 2013


Fair enough. Nevermind then.

This patch looks good to me, but I'd like somebody who understands DRI
image 7 to take a look at the whole series.

Marek

On Thu, Oct 10, 2013 at 3:11 AM, Christopher James Halse Rogers
<christopher.halse.rogers at canonical.com> wrote:
> 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