perf dso: Update use of pthread mutex
authorIan Rogers <irogers@google.com>
Fri, 26 Aug 2022 16:42:35 +0000 (09:42 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 4 Oct 2022 11:55:20 +0000 (08:55 -0300)
Switch to the use of mutex wrappers that provide better error checking.

Signed-off-by: Ian Rogers <irogers@google.com>
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexandre Truong <alexandre.truong@arm.com>
Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andres Freund <andres@anarazel.de>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com>
Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Colin Ian King <colin.king@intel.com>
Cc: Dario Petrillo <dario.pk1@gmail.com>
Cc: Darren Hart <dvhart@infradead.org>
Cc: Dave Marchevsky <davemarchevsky@fb.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Fangrui Song <maskray@google.com>
Cc: Hewenliang <hewenliang4@huawei.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jason Wang <wangborong@cdjrlc.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Kim Phillips <kim.phillips@amd.com>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Martin Liška <mliska@suse.cz>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Pavithra Gurushankar <gpavithrasha@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Monnet <quentin@isovalent.com>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Remi Bernon <rbernon@codeweavers.com>
Cc: Riccardo Mancini <rickyman7@gmail.com>
Cc: Song Liu <songliubraving@fb.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Cc: Tom Rix <trix@redhat.com>
Cc: Weiguo Li <liwg06@foxmail.com>
Cc: Wenyu Liu <liuwenyu7@huawei.com>
Cc: William Cohen <wcohen@redhat.com>
Cc: Zechuan Chen <chenzechuan1@huawei.com>
Cc: bpf@vger.kernel.org
Cc: llvm@lists.linux.dev
Cc: yaowenbin <yaowenbin1@huawei.com>
Link: https://lore.kernel.org/r/20220826164242.43412-12-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/dso.c
tools/perf/util/dso.h
tools/perf/util/symbol.c

index 5ac1395..a9789a9 100644 (file)
@@ -795,7 +795,7 @@ dso_cache__free(struct dso *dso)
        struct rb_root *root = &dso->data.cache;
        struct rb_node *next = rb_first(root);
 
-       pthread_mutex_lock(&dso->lock);
+       mutex_lock(&dso->lock);
        while (next) {
                struct dso_cache *cache;
 
@@ -804,7 +804,7 @@ dso_cache__free(struct dso *dso)
                rb_erase(&cache->rb_node, root);
                free(cache);
        }
-       pthread_mutex_unlock(&dso->lock);
+       mutex_unlock(&dso->lock);
 }
 
 static struct dso_cache *__dso_cache__find(struct dso *dso, u64 offset)
@@ -841,7 +841,7 @@ dso_cache__insert(struct dso *dso, struct dso_cache *new)
        struct dso_cache *cache;
        u64 offset = new->offset;
 
-       pthread_mutex_lock(&dso->lock);
+       mutex_lock(&dso->lock);
        while (*p != NULL) {
                u64 end;
 
@@ -862,7 +862,7 @@ dso_cache__insert(struct dso *dso, struct dso_cache *new)
 
        cache = NULL;
 out:
-       pthread_mutex_unlock(&dso->lock);
+       mutex_unlock(&dso->lock);
        return cache;
 }
 
@@ -1297,7 +1297,7 @@ struct dso *dso__new_id(const char *name, struct dso_id *id)
                dso->root = NULL;
                INIT_LIST_HEAD(&dso->node);
                INIT_LIST_HEAD(&dso->data.open_entry);
-               pthread_mutex_init(&dso->lock, NULL);
+               mutex_init(&dso->lock);
                refcount_set(&dso->refcnt, 1);
        }
 
@@ -1336,7 +1336,7 @@ void dso__delete(struct dso *dso)
        dso__free_a2l(dso);
        zfree(&dso->symsrc_filename);
        nsinfo__zput(dso->nsinfo);
-       pthread_mutex_destroy(&dso->lock);
+       mutex_destroy(&dso->lock);
        free(dso);
 }
 
index 66981c7..58d9417 100644 (file)
@@ -2,7 +2,6 @@
 #ifndef __PERF_DSO
 #define __PERF_DSO
 
-#include <pthread.h>
 #include <linux/refcount.h>
 #include <linux/types.h>
 #include <linux/rbtree.h>
@@ -11,6 +10,7 @@
 #include <stdio.h>
 #include <linux/bitops.h>
 #include "build-id.h"
+#include "mutex.h"
 
 struct machine;
 struct map;
@@ -145,7 +145,7 @@ struct dso_cache {
 struct auxtrace_cache;
 
 struct dso {
-       pthread_mutex_t  lock;
+       struct mutex     lock;
        struct list_head node;
        struct rb_node   rb_node;       /* rbtree node sorted by long name */
        struct rb_root   *root;         /* root of rbtree that rb_node is in */
index a4b22ca..656d9b4 100644 (file)
@@ -1800,7 +1800,7 @@ int dso__load(struct dso *dso, struct map *map)
        }
 
        nsinfo__mountns_enter(dso->nsinfo, &nsc);
-       pthread_mutex_lock(&dso->lock);
+       mutex_lock(&dso->lock);
 
        /* check again under the dso->lock */
        if (dso__loaded(dso)) {
@@ -1964,7 +1964,7 @@ out_free:
                ret = 0;
 out:
        dso__set_loaded(dso);
-       pthread_mutex_unlock(&dso->lock);
+       mutex_unlock(&dso->lock);
        nsinfo__mountns_exit(&nsc);
 
        return ret;