Ian Rogers
b72b8132d8
perf libbfd: Ensure libbfd is initialized prior to use
...
Multiple threads may be creating and destroying BFD objects in
situations like `perf top`.
Without appropriate initialization crashes may occur during libbfd's
cache management.
BFD's locks require recursive mutexes, add support for these.
Committer testing:
This happens only when building with 'make BUILD_NONDISTRO=1' and having
the binutils-devel package (or equivalent) installed, i.e. linking with
binutils devel files, an opt-in perf build.
Before:
root@x1:~# perf top
perf: Segmentation fault
-------- backtrace --------
<SNIP multiple failed attempts at printing a backtrace>
root@x1:~#
After this patch it works as before.
Closes: https://lore.kernel.org/lkml/aQt66zhfxSA80xwt@gentoo.org/
Fixes: 95931d9a59 ("perf libbfd: Move libbfd functionality to its own file")
Reported-by: Guilherme Amadio <amadio@gentoo.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2025-11-13 17:55:19 -03:00
Ian Rogers
6fe064491b
perf rwsem: Add clang's -Wthread-safety annotations
...
Add annotations used by clang's -Wthread-safety.
Fix dsos compilation errors caused by a lock of annotations.
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Bill Wendling <morbo@google.com >
Cc: Chaitanya S Prakash <chaitanyas.prakash@arm.com >
Cc: Fei Lang <langfei@huawei.com >
Cc: Howard Chu <howardchu95@gmail.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James Clark <james.clark@linaro.org >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Justin Stitt <justinstitt@google.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Nathan Chancellor <nathan@kernel.org >
Cc: Nick Desaulniers <nick.desaulniers+lkml@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephen Brennan <stephen.s.brennan@oracle.com >
Link: https://lore.kernel.org/r/20250519224645.1810891-2-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2025-05-21 15:07:13 -03:00
Ian Rogers
c5ebf3a266
perf mutex: Add annotations for LOCKS_EXCLUDED and LOCKS_RETURNED
...
Used to annotate when locks shouldn't be held for a function or if a
function returns a lock that's used by later mutex lock unlock
operations.
Signed-off-by: Ian Rogers <irogers@google.com >
Link: https://lore.kernel.org/r/20250318043151.137973-2-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2025-03-17 22:07:18 -07:00
Ian Rogers
bfa339ceda
perf mutex: Add thread safety annotations
...
Add thread safety annotations to struct mutex so that when compiled with
clang's -Wthread-safety warnings are generated for erroneous lock
patterns. NO_THREAD_SAFETY_ANALYSIS is needed for
mutex_lock/mutex_unlock as the analysis doesn't under pthread calls.
Signed-off-by: Ian Rogers <irogers@google.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
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-16-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-10-04 08:55:20 -03:00
Pavithra Gurushankar
e57d897703
perf mutex: Wrapped usage of mutex and cond
...
Added a new header file mutex.h that wraps the usage of
pthread_mutex_t and pthread_cond_t. By abstracting these it is
possible to introduce error checking.
Signed-off-by: Pavithra Gurushankar <gpavithrasha@gmail.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: 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-2-irogers@google.com
Signed-off-by: Ian Rogers <irogers@google.com >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-10-04 08:55:19 -03:00