linux/tools/perf
Ian Rogers 8f12692b7e perf maps: Add reference count checking
Add reference count checking to make sure of good use of get and put.
Add and use accessors to reduce RC_CHK clutter.

The only significant issue was in tests/thread-maps-share.c where
reference counts were released in the reverse order to acquisition,
leading to a use after put. This was fixed by reversing the put order.

Committer notes:

Extracted from a larger patch removing bits that were covered by the use
of pre-existing maps__ accessors (e.g. maps__nr_maps()) and new ones
added (maps__refcnt()) to reduce RC_CHK_ACCESS(maps)-> source code
pollution.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
Cc: Dmitriy Vyukov <dvyukov@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Riccardo Mancini <rickyman7@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
Link: https://lore.kernel.org/lkml/20230407230405.2931830-5-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2023-04-19 10:53:01 -03:00
..
arch perf arm-spe: Use zfree() to reduce chances of use after free 2023-04-12 10:15:27 -03:00
bench perf bench inject-buildid: Use zfree() to reduce chances of use after free 2023-04-12 10:14:01 -03:00
dlfilters
Documentation perf lock contention: Update default map size to 16384 2023-04-06 21:52:27 -03:00
examples/bpf
include/perf
jvmti
pmu-events perf vendor events intel: Fix uncore topics for tigerlake 2023-04-13 18:56:18 -03:00
python
scripts perf script task-analyzer: Fix spelling mistake "miliseconds" -> "milliseconds" 2023-04-17 22:24:14 -03:00
tests perf maps: Add reference count checking 2023-04-19 10:53:01 -03:00
trace
ui perf dso: Fix use before NULL check introduced by map__dso() introduction 2023-04-19 10:51:48 -03:00
util perf maps: Add reference count checking 2023-04-19 10:53:01 -03:00
.gitignore perf jevents: Run metric_test.py at compile-time 2023-02-03 17:11:39 -03:00
Build perf script: Fix Python support when no libtraceevent 2023-03-15 10:27:07 -03:00
builtin-annotate.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-bench.c perf bench: Add pmu-scan benchmark 2023-04-04 13:23:58 -03:00
builtin-buildid-cache.c
builtin-buildid-list.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-c2c.c perf c2c: Use zfree() to reduce chances of use after free 2023-04-12 09:55:10 -03:00
builtin-config.c
builtin-daemon.c perf daemon: Use zfree() to reduce chances of use after free 2023-04-12 09:52:29 -03:00
builtin-data.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-diff.c perf util: Move perf_guest/host declarations 2023-04-10 19:22:05 -03:00
builtin-evlist.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-ftrace.c perf ftrace: Make system wide the default target for latency subcommand 2023-04-04 09:39:55 -03:00
builtin-help.c perf usage: Move usage strings 2023-04-10 19:20:53 -03:00
builtin-inject.c perf dso: Add dso__filename_with_chroot() to reduce number of accesses to dso->nsinfo members 2023-04-17 18:47:55 -03:00
builtin-kallsyms.c perf map: Add helper for ->map_ip() and ->unmap_ip() 2023-04-06 22:10:17 -03:00
builtin-kmem.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-kvm.c perf util: Move perf_guest/host declarations 2023-04-10 19:22:05 -03:00
builtin-kwork.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-list.c perf list: Use zfree() to reduce chances of use after free 2023-04-12 09:55:44 -03:00
builtin-lock.c perf map: Add helper for ->map_ip() and ->unmap_ip() 2023-04-06 22:10:17 -03:00
builtin-mem.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-probe.c tools: Rename __fallthrough to fallthrough 2023-04-06 21:41:00 -03:00
builtin-record.c perf bpf filter: Show warning for missing sample flags 2023-03-15 11:08:36 -03:00
builtin-report.c perf map: Add accessors for ->pgoff and ->reloc 2023-04-06 22:12:40 -03:00
builtin-sched.c perf sched: Fix sched latency analysis incorrection when using 'sched:sched_wakeup' 2023-04-12 19:30:39 -03:00
builtin-script.c perf dso: Fix use before NULL check introduced by map__dso() introduction 2023-04-19 10:51:48 -03:00
builtin-stat.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-timechart.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
builtin-top.c perf top: Expand the range of multithreaded phase 2023-04-12 10:36:14 -03:00
builtin-trace.c perf trace: Use zfree() to reduce chances of use after free 2023-04-12 09:54:32 -03:00
builtin-version.c perf version: Use regular verbose flag 2023-04-10 19:21:17 -03:00
builtin.h perf usage: Move usage strings 2023-04-10 19:20:53 -03:00
check-headers.sh tools headers: Remove s390 ptrace.h in check-headers.sh 2023-04-12 10:32:54 -03:00
command-list.txt
CREDITS
design.txt
Makefile
Makefile.config perf build: Warn for BPF skeletons if endian mismatches 2023-04-10 19:23:26 -03:00
Makefile.perf perf build: Add warning for when vmlinux.h generation fails 2023-04-04 09:39:54 -03:00
MANIFEST
perf-archive.sh
perf-completion.sh perf tools: Fix auto-complete on aarch64 2023-02-08 10:38:10 -03:00
perf-iostat.sh
perf-read-vdso.c
perf-sys.h
perf.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
perf.h perf util: Move perf_guest/host declarations 2023-04-10 19:22:05 -03:00