linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ian Rogers <irogers@google.com>
To: "Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	"Jiri Olsa" <jolsa@kernel.org>,
	"Namhyung Kim" <namhyung@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Darren Hart" <dvhart@infradead.org>,
	"Davidlohr Bueso" <dave@stgolabs.net>,
	"André Almeida" <andrealmeid@igalia.com>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Tom Rix" <trix@redhat.com>, "Weiguo Li" <liwg06@foxmail.com>,
	"Athira Rajeev" <atrajeev@linux.vnet.ibm.com>,
	"Thomas Richter" <tmricht@linux.ibm.com>,
	"Ravi Bangoria" <ravi.bangoria@amd.com>,
	"Dario Petrillo" <dario.pk1@gmail.com>,
	Hewenliang <hewenliang4@huawei.com>,
	yaowenbin <yaowenbin1@huawei.com>,
	"Wenyu Liu" <liuwenyu7@huawei.com>,
	"Song Liu" <songliubraving@fb.com>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Dave Marchevsky" <davemarchevsky@fb.com>,
	"Leo Yan" <leo.yan@linaro.org>,
	"Kim Phillips" <kim.phillips@amd.com>,
	"Pavithra Gurushankar" <gpavithrasha@gmail.com>,
	"Alexandre Truong" <alexandre.truong@arm.com>,
	"Quentin Monnet" <quentin@isovalent.com>,
	"William Cohen" <wcohen@redhat.com>,
	"Andres Freund" <andres@anarazel.de>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Martin Liška" <mliska@suse.cz>,
	"Colin Ian King" <colin.king@intel.com>,
	"James Clark" <james.clark@arm.com>,
	"Fangrui Song" <maskray@google.com>,
	"Stephane Eranian" <eranian@google.com>,
	"Kajol Jain" <kjain@linux.ibm.com>,
	"Alexey Bayduraev" <alexey.v.bayduraev@linux.intel.com>,
	"Riccardo Mancini" <rickyman7@gmail.com>,
	"Andi Kleen" <ak@linux.intel.com>,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"Zechuan Chen" <chenzechuan1@huawei.com>,
	"Jason Wang" <wangborong@cdjrlc.com>,
	"Christophe JAILLET" <christophe.jaillet@wanadoo.fr>,
	"Remi Bernon" <rbernon@codeweavers.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	bpf@vger.kernel.org, llvm@lists.linux.dev
Cc: Ian Rogers <irogers@google.com>
Subject: [PATCH v2 11/18] perf dso: Update use of pthread mutex
Date: Tue, 23 Aug 2022 15:09:15 -0700	[thread overview]
Message-ID: <20220823220922.256001-12-irogers@google.com> (raw)
In-Reply-To: <20220823220922.256001-1-irogers@google.com>

Switch to the use of mutex wrappers that provide better error checking.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/util/dso.c    | 12 ++++++------
 tools/perf/util/dso.h    |  4 ++--
 tools/perf/util/symbol.c |  4 ++--
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
index 5ac13958d1bd..c7a5b42d1311 100644
--- a/tools/perf/util/dso.c
+++ b/tools/perf/util/dso.c
@@ -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, /*pshared=*/false);
 		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);
 }
 
diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h
index 66981c7a9a18..58d94175e714 100644
--- a/tools/perf/util/dso.h
+++ b/tools/perf/util/dso.h
@@ -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 */
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index a4b22caa7c24..656d9b4dd456 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -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 @@ int dso__load(struct dso *dso, struct map *map)
 		ret = 0;
 out:
 	dso__set_loaded(dso);
-	pthread_mutex_unlock(&dso->lock);
+	mutex_unlock(&dso->lock);
 	nsinfo__mountns_exit(&nsc);
 
 	return ret;
-- 
2.37.2.609.g9ff673ca1a-goog


  parent reply	other threads:[~2022-08-23 22:11 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-23 22:09 [PATCH v2 00/18] Mutex wrapper, locking and memory leak fixes Ian Rogers
2022-08-23 22:09 ` [PATCH v2 01/18] perf mutex: Wrapped usage of mutex and cond Ian Rogers
2022-08-24  9:45   ` Adrian Hunter
2022-08-24 15:01     ` Ian Rogers
2022-08-23 22:09 ` [PATCH v2 02/18] perf bench: Update use of pthread mutex/cond Ian Rogers
2022-08-23 22:09 ` [PATCH v2 03/18] perf tests: Avoid pthread.h inclusion Ian Rogers
2022-08-23 22:09 ` [PATCH v2 04/18] perf hist: Update use of pthread mutex Ian Rogers
2022-08-23 22:09 ` [PATCH v2 05/18] perf bpf: Remove unused pthread.h include Ian Rogers
2022-08-23 22:09 ` [PATCH v2 06/18] perf lock: " Ian Rogers
2022-08-23 22:09 ` [PATCH v2 07/18] perf record: Update use of pthread mutex Ian Rogers
2022-08-24 10:14   ` Adrian Hunter
2022-08-24 15:04     ` Ian Rogers
2022-08-23 22:09 ` [PATCH v2 08/18] perf sched: " Ian Rogers
2022-08-23 22:09 ` [PATCH v2 09/18] perf ui: " Ian Rogers
2022-08-23 22:09 ` [PATCH v2 10/18] perf mmap: Remove unnecessary pthread.h include Ian Rogers
2022-08-23 22:09 ` Ian Rogers [this message]
2022-08-23 22:09 ` [PATCH v2 12/18] perf annotate: Update use of pthread mutex Ian Rogers
2022-08-23 22:09 ` [PATCH v2 13/18] perf top: " Ian Rogers
2022-08-23 22:09 ` [PATCH v2 14/18] perf dso: Hold lock when accessing nsinfo Ian Rogers
2022-08-23 22:09 ` [PATCH v2 15/18] perf mutex: Add thread safety annotations Ian Rogers
2022-08-23 22:09 ` [PATCH v2 16/18] perf sched: Fixes for thread safety analysis Ian Rogers
2022-08-23 22:09 ` [PATCH v2 17/18] perf top: " Ian Rogers
2022-08-23 22:09 ` [PATCH v2 18/18] perf build: Enable -Wthread-safety with clang Ian Rogers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220823220922.256001-12-irogers@google.com \
    --to=irogers@google.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexandre.truong@arm.com \
    --cc=alexey.v.bayduraev@linux.intel.com \
    --cc=andrealmeid@igalia.com \
    --cc=andres@anarazel.de \
    --cc=andrii@kernel.org \
    --cc=atrajeev@linux.vnet.ibm.com \
    --cc=bpf@vger.kernel.org \
    --cc=chenzechuan1@huawei.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=colin.king@intel.com \
    --cc=dario.pk1@gmail.com \
    --cc=dave@stgolabs.net \
    --cc=davemarchevsky@fb.com \
    --cc=dvhart@infradead.org \
    --cc=eranian@google.com \
    --cc=gpavithrasha@gmail.com \
    --cc=hewenliang4@huawei.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=kim.phillips@amd.com \
    --cc=kjain@linux.ibm.com \
    --cc=leo.yan@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=liuwenyu7@huawei.com \
    --cc=liwg06@foxmail.com \
    --cc=llvm@lists.linux.dev \
    --cc=mark.rutland@arm.com \
    --cc=maskray@google.com \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mliska@suse.cz \
    --cc=namhyung@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=peterz@infradead.org \
    --cc=quentin@isovalent.com \
    --cc=ravi.bangoria@amd.com \
    --cc=rbernon@codeweavers.com \
    --cc=rickyman7@gmail.com \
    --cc=songliubraving@fb.com \
    --cc=tglx@linutronix.de \
    --cc=tmricht@linux.ibm.com \
    --cc=trix@redhat.com \
    --cc=wangborong@cdjrlc.com \
    --cc=wcohen@redhat.com \
    --cc=yaowenbin1@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).