perf hist: Update use of pthread mutex
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-5-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
130f267af6
Коммит
8e03bb88ab
|
@ -220,7 +220,7 @@ static void perf_top__record_precise_ip(struct perf_top *top,
|
|||
* This function is now called with he->hists->lock held.
|
||||
* Release it before going to sleep.
|
||||
*/
|
||||
pthread_mutex_unlock(&he->hists->lock);
|
||||
mutex_unlock(&he->hists->lock);
|
||||
|
||||
if (err == -ERANGE && !he->ms.map->erange_warned)
|
||||
ui__warn_map_erange(he->ms.map, sym, ip);
|
||||
|
@ -230,7 +230,7 @@ static void perf_top__record_precise_ip(struct perf_top *top,
|
|||
sleep(1);
|
||||
}
|
||||
|
||||
pthread_mutex_lock(&he->hists->lock);
|
||||
mutex_lock(&he->hists->lock);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -836,12 +836,12 @@ static void perf_event__process_sample(struct perf_tool *tool,
|
|||
else
|
||||
iter.ops = &hist_iter_normal;
|
||||
|
||||
pthread_mutex_lock(&hists->lock);
|
||||
mutex_lock(&hists->lock);
|
||||
|
||||
if (hist_entry_iter__add(&iter, &al, top->max_stack, top) < 0)
|
||||
pr_err("Problem incrementing symbol period, skipping event\n");
|
||||
|
||||
pthread_mutex_unlock(&hists->lock);
|
||||
mutex_unlock(&hists->lock);
|
||||
}
|
||||
|
||||
addr_location__put(&al);
|
||||
|
|
|
@ -1622,13 +1622,13 @@ struct rb_root_cached *hists__get_rotate_entries_in(struct hists *hists)
|
|||
{
|
||||
struct rb_root_cached *root;
|
||||
|
||||
pthread_mutex_lock(&hists->lock);
|
||||
mutex_lock(&hists->lock);
|
||||
|
||||
root = hists->entries_in;
|
||||
if (++hists->entries_in > &hists->entries_in_array[1])
|
||||
hists->entries_in = &hists->entries_in_array[0];
|
||||
|
||||
pthread_mutex_unlock(&hists->lock);
|
||||
mutex_unlock(&hists->lock);
|
||||
|
||||
return root;
|
||||
}
|
||||
|
@ -2805,7 +2805,7 @@ int __hists__init(struct hists *hists, struct perf_hpp_list *hpp_list)
|
|||
hists->entries_in = &hists->entries_in_array[0];
|
||||
hists->entries_collapsed = RB_ROOT_CACHED;
|
||||
hists->entries = RB_ROOT_CACHED;
|
||||
pthread_mutex_init(&hists->lock, NULL);
|
||||
mutex_init(&hists->lock);
|
||||
hists->socket_filter = -1;
|
||||
hists->hpp_list = hpp_list;
|
||||
INIT_LIST_HEAD(&hists->hpp_formats);
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
|
||||
#include <linux/rbtree.h>
|
||||
#include <linux/types.h>
|
||||
#include <pthread.h>
|
||||
#include "evsel.h"
|
||||
#include "color.h"
|
||||
#include "events_stats.h"
|
||||
#include "mutex.h"
|
||||
|
||||
struct hist_entry;
|
||||
struct hist_entry_ops;
|
||||
|
@ -98,7 +98,7 @@ struct hists {
|
|||
const struct dso *dso_filter;
|
||||
const char *uid_filter_str;
|
||||
const char *symbol_filter_str;
|
||||
pthread_mutex_t lock;
|
||||
struct mutex lock;
|
||||
struct hists_stats stats;
|
||||
u64 event_stream;
|
||||
u16 col_len[HISTC_NR_COLS];
|
||||
|
|
Загрузка…
Ссылка в новой задаче