Mesa (main): util/slab: use simple_mtx_t

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 6 00:12:41 UTC 2021


Module: Mesa
Branch: main
Commit: 28bde895567aaf897171eebdbfe4ed9e860092f9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=28bde895567aaf897171eebdbfe4ed9e860092f9

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Oct  1 15:40:40 2021 -0400

util/slab: use simple_mtx_t

Acked-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13152>

---

 src/gallium/winsys/crocus/drm/meson.build |  1 +
 src/util/slab.c                           | 18 +++++++++---------
 src/util/slab.h                           |  4 ++--
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/gallium/winsys/crocus/drm/meson.build b/src/gallium/winsys/crocus/drm/meson.build
index 4e82fe52437..66b8dabb153 100644
--- a/src/gallium/winsys/crocus/drm/meson.build
+++ b/src/gallium/winsys/crocus/drm/meson.build
@@ -26,4 +26,5 @@ libcrocuswinsys = static_library(
     inc_gallium, inc_gallium_aux, inc_gallium_drivers,
   ],
   gnu_symbol_visibility : 'hidden',
+  dependencies : [dep_valgrind],
 )
diff --git a/src/util/slab.c b/src/util/slab.c
index b0f07e0202d..1e778a12381 100644
--- a/src/util/slab.c
+++ b/src/util/slab.c
@@ -106,7 +106,7 @@ slab_create_parent(struct slab_parent_pool *parent,
                    unsigned item_size,
                    unsigned num_items)
 {
-   mtx_init(&parent->mutex, mtx_plain);
+   simple_mtx_init(&parent->mutex, mtx_plain);
    parent->element_size = ALIGN_POT(sizeof(struct slab_element_header) + item_size,
                                     sizeof(intptr_t));
    parent->num_elements = num_items;
@@ -115,7 +115,7 @@ slab_create_parent(struct slab_parent_pool *parent,
 void
 slab_destroy_parent(struct slab_parent_pool *parent)
 {
-   mtx_destroy(&parent->mutex);
+   simple_mtx_destroy(&parent->mutex);
 }
 
 /**
@@ -141,7 +141,7 @@ void slab_destroy_child(struct slab_child_pool *pool)
    if (!pool->parent)
       return; /* the slab probably wasn't even created */
 
-   mtx_lock(&pool->parent->mutex);
+   simple_mtx_lock(&pool->parent->mutex);
 
    while (pool->pages) {
       struct slab_page_header *page = pool->pages;
@@ -160,7 +160,7 @@ void slab_destroy_child(struct slab_child_pool *pool)
       slab_free_orphaned(elt);
    }
 
-   mtx_unlock(&pool->parent->mutex);
+   simple_mtx_unlock(&pool->parent->mutex);
 
    while (pool->free) {
       struct slab_element_header *elt = pool->free;
@@ -211,10 +211,10 @@ slab_alloc(struct slab_child_pool *pool)
       /* First, collect elements that belong to us but were freed from a
        * different child pool.
        */
-      mtx_lock(&pool->parent->mutex);
+      simple_mtx_lock(&pool->parent->mutex);
       pool->free = pool->migrated;
       pool->migrated = NULL;
-      mtx_unlock(&pool->parent->mutex);
+      simple_mtx_unlock(&pool->parent->mutex);
 
       /* Now allocate a new page. */
       if (!pool->free && !slab_add_new_page(pool))
@@ -258,7 +258,7 @@ void slab_free(struct slab_child_pool *pool, void *ptr)
 
    /* The slow case: migration or an orphaned page. */
    if (pool->parent)
-      mtx_lock(&pool->parent->mutex);
+      simple_mtx_lock(&pool->parent->mutex);
 
    /* Note: we _must_ re-read elt->owner here because the owning child pool
     * may have been destroyed by another thread in the meantime.
@@ -270,10 +270,10 @@ void slab_free(struct slab_child_pool *pool, void *ptr)
       elt->next = owner->migrated;
       owner->migrated = elt;
       if (pool->parent)
-         mtx_unlock(&pool->parent->mutex);
+         simple_mtx_unlock(&pool->parent->mutex);
    } else {
       if (pool->parent)
-         mtx_unlock(&pool->parent->mutex);
+         simple_mtx_unlock(&pool->parent->mutex);
 
       slab_free_orphaned(elt);
    }
diff --git a/src/util/slab.h b/src/util/slab.h
index f9e7d4754fe..969b0ec5c65 100644
--- a/src/util/slab.h
+++ b/src/util/slab.h
@@ -42,7 +42,7 @@
 #ifndef SLAB_H
 #define SLAB_H
 
-#include "c11/threads.h"
+#include "simple_mtx.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -52,7 +52,7 @@ struct slab_element_header;
 struct slab_page_header;
 
 struct slab_parent_pool {
-   mtx_t mutex;
+   simple_mtx_t mutex;
    unsigned element_size;
    unsigned num_elements;
 };



More information about the mesa-commit mailing list