mirror-linux/tools/perf/util
Chuck Lever 35b16a7a2c perf synthetic-events: Fix stale build ID in module MMAP2 records
perf_event__synthesize_modules() allocates a single union perf_event and
reuses it across every kernel module callback.

After the first module is processed, perf_record_mmap2__read_build_id()
sets PERF_RECORD_MISC_MMAP_BUILD_ID in header.misc and writes that
module's build ID into the event.

On subsequent iterations the callback overwrites start, len, pid, and
filename for the next module but never clears the stale build ID fields
or the MMAP_BUILD_ID flag.

When perf_record_mmap2__read_build_id() runs for the second module it
sees the flag, reads the stale build ID into a dso_id, and
__dso__improve_id() permanently poisons the DSO with the wrong build ID.

Every module after the first therefore receives the first module's build
ID in its MMAP2 record.

On a system with the sunrpc and nfsd modules loaded, this causes perf
script and perf report to show [unknown] for all module symbols.

The latent bug has existed since commit d9f2ecbc5e ("perf dso:
Move build_id to dso_id") introduced the PERF_RECORD_MISC_MMAP_BUILD_ID
check in perf_record_mmap2__read_build_id().

Commit 53b00ff358 ("perf record: Make --buildid-mmap the default")
then exposed it to all users by making the MMAP2-with-build-ID path the
default.  Both commits were merged in the same series.

Clear the MMAP_BUILD_ID flag and zero the build_id union before each
call to perf_record_mmap2__read_build_id() so that every module starts
with a clean slate.

Fixes: d9f2ecbc5e ("perf dso: Move build_id to dso_id")
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2026-03-11 17:47:42 -03:00
..
annotate-arch perf annotate loongarch: Fix off-by-one bug in outside check 2026-03-10 12:06:57 -03:00
arm-spe-decoder perf arm_spe: Expose SIMD information in other operations 2025-11-18 20:31:30 -08:00
bpf_skel perf trace: Increase syscall handler map size to 1024 2025-10-31 12:29:44 -07:00
cs-etm-decoder perf cs-etm: Finish removal of ETM_OPT_* 2026-03-10 09:50:44 -03:00
dwarf-regs-arch perf dwarf-regs: Add MIPS perf to DWARF register number mapping functions 2026-01-20 15:43:56 -03:00
hisi-ptt-decoder perf build: Remove NO_AUXTRACE build option 2025-11-13 23:03:11 -08:00
include perf dwarf-regs: Add MIPS perf to DWARF register number mapping functions 2026-01-20 15:43:56 -03:00
intel-pt-decoder perf build: Remove NO_AUXTRACE build option 2025-11-13 23:03:11 -08:00
kvm-stat-arch perf kvm stat: Fix build error 2026-02-06 18:07:05 -03:00
libunwind perf unwind: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -03:00
perf-regs-arch perf regs: Remove __weak attributive arch_sdt_arg_parse_op() function 2026-02-06 12:16:12 -03:00
scripting-engines perf thread: Don't require machine to compute the e_machine 2026-02-03 18:01:27 -03:00
Build perf kvm stat: Remove use of the arch directory 2026-02-03 18:01:27 -03:00
PERF-VERSION-GEN perf tools: Don't include signature in version strings 2023-01-02 12:34:06 -03:00
addr2line.c perf test: Fix test case perftool-testsuite_report for s390 2026-02-09 15:51:35 -03:00
addr2line.h perf srcline: Fallback between addr2line implementations 2025-10-06 16:47:49 -03:00
addr_location.c perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
addr_location.h perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
affinity.c perf test: Expand user space event reading (rdpmc) tests 2025-06-20 13:14:07 -07:00
affinity.h perf test: Expand user space event reading (rdpmc) tests 2025-06-20 13:14:07 -07:00
amd-sample-raw.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
annotate-data.c perf disasm: Rework the string arch__is to use the ELF machine 2026-01-23 16:58:38 -03:00
annotate-data.h perf disasm: Constify use of 'struct arch' 2026-01-23 16:58:38 -03:00
annotate.c perf annotate: Fix hashmap__new() error checking 2026-03-10 10:19:44 -03:00
annotate.h perf disasm: Refactor arch__find and initialization of arch structs 2026-01-23 16:58:39 -03:00
arm-spe.c perf arm-spe: Add NVIDIA Olympus to neoverse list 2025-12-23 10:15:50 -08:00
arm-spe.h perf arm_spe: Add "event_filter" entry in meta data 2025-09-19 12:14:28 -03:00
arm64-frame-pointer-unwind-support.c perf regs: Refactor use of arch__sample_reg_masks() to perf_reg_name() 2026-01-23 16:58:39 -03:00
arm64-frame-pointer-unwind-support.h
auxtrace.c perf tool: Add the perf_tool argument to all callbacks 2025-11-07 13:25:05 -08:00
auxtrace.h perf auxtrace: Include sys/types.h for pid_t 2025-12-03 11:01:05 -08:00
blake2s.c perf util: Add BLAKE2s support 2026-01-13 17:03:25 -03:00
blake2s.h perf util: Add BLAKE2s support 2026-01-13 17:03:25 -03:00
block-info.c perf report: Display the branch counter histogram 2024-08-14 10:20:40 -03:00
block-info.h perf report: Display the branch counter histogram 2024-08-14 10:20:40 -03:00
block-range.c perf annotate: Move max_coverage from 'struct annotation' to 'struct annotated_branch' 2023-11-09 13:49:33 -03:00
block-range.h
bpf-event.c perf bpf-event: Constify variables storing the result of strchr() on const tables 2026-01-27 02:35:29 -03:00
bpf-event.h perf record: collect BPF metadata from new programs 2025-06-20 14:48:49 -07:00
bpf-filter.c perf bpf: Move the LIBBPF_CURRENT_VERSION_GEQ macro to bpf-utils.h 2025-09-30 13:36:03 -03:00
bpf-filter.h perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
bpf-filter.l perf bpf-filter: Fix a parsing error with comma 2025-03-24 17:29:58 -07:00
bpf-filter.y perf bpf-filter: Support filtering on cgroups 2024-08-28 18:21:49 -03:00
bpf-trace-summary.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
bpf-utils.c perf tools: Switch printf("...%s", strerror(errno)) to printf("...%m") 2026-01-14 17:22:50 -03:00
bpf-utils.h perf bpf-event: Use libbpf version rather than feature check 2025-10-03 16:49:51 -03:00
bpf_counter.c perf bpf_counter: Fix opening of "any"(-1) CPU events 2025-10-13 01:58:51 -07:00
bpf_counter.h perf bpf_counter: Move header declarations into C code 2025-10-01 15:27:02 -03:00
bpf_counter_cgroup.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
bpf_ftrace.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
bpf_kwork.c perf kwork: Make perf_kwork_add_work a callback 2024-12-18 16:24:33 -03:00
bpf_kwork_top.c perf kwork: Make perf_kwork_add_work a callback 2024-12-18 16:24:33 -03:00
bpf_lock_contention.c perf lock contention: fix segfault in `lock contention -b/--use-bpf` 2026-02-06 18:57:26 -03:00
bpf_map.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
bpf_map.h
bpf_off_cpu.c perf bpf_counter: Move header declarations into C code 2025-10-01 15:27:02 -03:00
bpf_trace_augment.c perf trace: Split BPF skel code to util/bpf_trace_augment.c 2025-06-26 10:31:05 -07:00
branch.c perf session: Add accessor for session->header.env 2025-07-25 10:37:56 -07:00
branch.h perf script: Add not taken event for branch stack 2025-03-05 09:13:19 -08:00
btf.c perf btf: Make the sigtrap test helper to find a member by name widely available 2024-12-09 17:52:41 -03:00
btf.h perf btf: Make the sigtrap test helper to find a member by name widely available 2024-12-09 17:52:41 -03:00
build-id.c perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
build-id.h perf build-id: Change sprintf functions to snprintf 2025-07-25 10:37:13 -07:00
cache.h perf path: Make mkpath thread safe, remove 16384 bytes from .bss 2023-05-28 10:24:14 -03:00
cacheline.c
cacheline.h perf c2c: Add report option to show false sharing in adjacent cachelines 2023-02-16 09:33:45 -03:00
call-path.c
call-path.h
callchain.c perf callchain: Switch callchain_param_setup from an arch to an e_machine 2026-01-27 01:35:47 -03:00
callchain.h perf callchain: Switch callchain_param_setup from an arch to an e_machine 2026-01-27 01:35:47 -03:00
cap.c perf tools: Switch printf("...%s", strerror(errno)) to printf("...%m") 2026-01-14 17:22:50 -03:00
cap.h perf bpf-filter: Improve error messages 2025-06-09 11:18:17 -07:00
capstone.c perf capstone: Support for dlopen-ing libcapstone.so 2026-02-03 11:34:02 -03:00
capstone.h perf capstone: Support for dlopen-ing libcapstone.so 2026-02-03 11:34:02 -03:00
cgroup.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
cgroup.h perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
clockid.c
clockid.h
cloexec.c perf util: Remove weak sched_getcpu 2023-03-14 08:29:46 -03:00
cloexec.h
color.c perf tools: Remove unused color_fwrite_lines 2024-10-10 23:38:33 -07:00
color.h perf util: Remove unused perf_color_default_config 2025-03-10 11:31:24 -07:00
color_config.c perf util: Remove unused perf_color_default_config 2025-03-10 11:31:24 -07:00
comm.c perf thread: Ensure comm_lock held for comm_list 2025-06-11 13:40:31 -07:00
comm.h
compress.h perf tools: Add LZMA decompression from FILE 2025-03-10 14:37:02 -07:00
config.c perf srcline: Add configuration support for the addr2line style 2026-01-13 16:09:14 -03:00
config.h perf util: Remove unused perf_config__refresh 2025-03-10 11:31:24 -07:00
copyfile.c
copyfile.h
counts.c
counts.h
cpu-set-sched.h
cpumap.c perf cpumap: Add "any" CPU handling to cpu_map__snprint_mask 2025-12-04 00:36:14 -08:00
cpumap.h perf cpumap: Remove refcnt from 'struct cpu_aggr_map' 2024-05-07 18:06:44 -03:00
cputopo.c libperf cpumap: Replace usage of perf_cpu_map__new(NULL) with perf_cpu_map__new_online_cpus() 2023-12-12 14:55:13 -03:00
cputopo.h perf expr: Make the online topology accessible globally 2023-02-19 08:03:12 -03:00
cs-etm-base.c perf cs-etm: Move mapping of Trace ID and cpu into helper function 2023-04-04 09:39:56 -03:00
cs-etm.c perf cs-etm: Finish removal of ETM_OPT_* 2026-03-10 09:50:44 -03:00
cs-etm.h perf cs-etm: Finish removal of ETM_OPT_* 2026-03-10 09:50:44 -03:00
data-convert-bt.c perf json: Pipe mode --to-ctf support 2026-02-12 17:45:22 -03:00
data-convert-json.c perf json: Pipe mode --to-json support 2026-02-12 17:45:22 -03:00
data-convert.h perf data: Allow filtering conversion by time range 2026-01-06 19:20:02 -03:00
data.c perf tools: Switch printf("...%s", strerror(errno)) to printf("...%m") 2026-01-14 17:22:50 -03:00
data.h perf util: Remove unused perf_data__update_dir 2025-03-10 11:31:24 -07:00
db-export.c perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
db-export.h
debug.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
debug.h perf debug: Add function symbols to dump_stack 2025-06-25 10:59:19 -07:00
debuginfo.c perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
debuginfo.h perf build: Rename HAVE_DWARF_SUPPORT to HAVE_LIBDW_SUPPORT 2024-10-18 10:17:40 -07:00
demangle-cxx.cpp perf symbol: Avoid memory leak from abi::__cxa_demangle 2023-03-20 12:49:58 -03:00
demangle-cxx.h perf symbol: Move demangling code out of symbol-elf.c 2025-05-28 19:02:58 -03:00
demangle-java.c perf demangle-java: Constify variables storing the result of strchr() on const tables 2026-01-27 02:33:29 -03:00
demangle-java.h
demangle-ocaml.c
demangle-ocaml.h
demangle-rust-v0.c perf demangle-rust: Add rustc-demangle C demangler 2025-05-09 17:00:05 -03:00
demangle-rust-v0.h perf demangle-rust: Add rustc-demangle C demangler 2025-05-09 17:00:05 -03:00
disasm.c perf disasm: Fix off-by-one bug in outside check 2026-03-05 16:51:09 -03:00
disasm.h perf thread: Add optional e_flags output argument to thread__e_machine 2026-01-26 18:21:20 -03:00
dlfilter.c perf script: Fix script_fetch_insn for more than just x86 2026-01-27 01:35:22 -03:00
dlfilter.h
drm_pmu.c perf pmu: perf_cpu_map__new_int to avoid parsing a string 2025-11-17 18:43:08 -08:00
drm_pmu.h perf drm_pmu: Add a tool like PMU to expose DRM information 2025-06-25 11:12:35 -07:00
dso.c perf thread: Add optional e_flags output argument to thread__e_machine 2026-01-26 18:21:20 -03:00
dso.h perf thread: Add optional e_flags output argument to thread__e_machine 2026-01-26 18:21:20 -03:00
dsos.c perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
dsos.h perf dso: Constify dso_id 2024-08-19 14:52:13 -03:00
dump-insn.c perf script: Minimize "not reaching sample" for '-F +brstackinsn' 2024-09-03 12:22:01 -03:00
dump-insn.h perf script: Minimize "not reaching sample" for '-F +brstackinsn' 2024-09-03 12:22:01 -03:00
dwarf-aux.c perf dwarf-aux: Fix __die_find_scope_cb() for namespaces 2025-09-19 12:14:30 -03:00
dwarf-aux.h perf dwarf-aux: Better variable collection for insn tracking 2025-09-19 12:14:30 -03:00
dwarf-regs.c perf dwarf-regs: Add MIPS perf to DWARF register number mapping functions 2026-01-20 15:43:56 -03:00
env.c perf header: Support CPU DOMAIN relation info 2026-01-21 21:55:09 -03:00
env.h perf header: Add e_machine/e_flags to the header 2026-02-03 18:01:27 -03:00
event.c perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
event.h perf sched stats: Add record and rawdump support 2026-01-22 12:29:28 -03:00
events_stats.h perf report: Add latency output field 2025-02-18 14:04:32 -08:00
evlist.c perf stat: Add no-affinity flag 2026-02-10 09:35:28 -03:00
evlist.h perf stat: Add no-affinity flag 2026-02-10 09:35:28 -03:00
evsel.c perf regs: Remove __weak attributive arch__xxx_reg_mask() functions 2026-02-06 12:16:09 -03:00
evsel.h perf session: Add e_flags to the e_machine helper 2026-02-03 18:01:27 -03:00
evsel_config.h perf parse-events: Track all user changed config bits 2026-01-14 23:14:54 -03:00
evsel_fprintf.c perf callchain: Fix srcline printing with inlines 2026-01-13 16:21:33 -03:00
evsel_fprintf.h perf script: Add new output field 'dsoff' to print dso offset 2023-05-12 15:21:49 -03:00
evswitch.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
evswitch.h perf: Various spelling fixes 2023-01-23 10:00:47 -03:00
expr.c perf tool_pmu: Make core_wide and target_cpu json events 2025-11-11 16:48:36 -08:00
expr.h perf jevents: Add a new expression builtin strcmp_cpuid_str() 2023-08-17 14:12:14 -03:00
expr.l perf expr: Allow NaN to be a valid number 2024-02-13 13:47:08 -08:00
expr.y perf expr: Make YYDEBUG dependent on doing a debug build 2023-09-12 17:46:50 -03:00
find-map.c
fncache.c perf fncache: Switch to using hashmap 2025-05-13 16:36:22 -03:00
fncache.h perf fncache: Switch to using hashmap 2025-05-13 16:36:22 -03:00
ftrace.h perf: ftrace: add graph tracer options args/retval/retval-hex/retaddr 2025-07-22 17:47:22 -07:00
genelf.c perf genelf: Switch from SHA-1 to BLAKE2s for build ID generation 2026-01-13 17:03:28 -03:00
genelf.h perf build: Rename HAVE_DWARF_SUPPORT to HAVE_LIBDW_SUPPORT 2024-10-18 10:17:40 -07:00
genelf_debug.c perf jit: Fix incorrect file name in DWARF line table 2023-06-20 22:18:58 -07:00
hashmap.c libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
hashmap.h perf tools: Fix possible compiler warnings in hashmap 2024-10-14 12:04:31 -07:00
header.c perf header: Add e_machine/e_flags to the header 2026-02-03 18:01:27 -03:00
header.h perf header: Add e_machine/e_flags to the header 2026-02-03 18:01:27 -03:00
help-unknown-cmd.c perf help: Lower levenshtein penality for deleting character 2024-03-21 13:54:40 -03:00
help-unknown-cmd.h
hisi-ptt.c perf tool: Constify tool pointers 2024-08-12 18:05:14 -03:00
hisi-ptt.h
hist.c perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
hist.h perf annotate: Fix build with NO_SLANG=1 2025-10-21 05:36:02 -07:00
hwmon_pmu.c perf hwmon_pmu: Constify the variables returning bsearch() on const tables 2026-01-27 02:15:30 -03:00
hwmon_pmu.h perf tools: Fix duplicated words in documentation and comments 2025-10-01 09:44:02 -03:00
intel-bts.c perf auxtrace: Add auxtrace_synth_id_range_start() helper 2025-10-25 17:44:57 -07:00
intel-bts.h
intel-pt.c perf auxtrace: Add auxtrace_synth_id_range_start() helper 2025-10-25 17:44:57 -07:00
intel-pt.h perf pmu: Lazily compute default config 2023-10-17 12:40:50 -07:00
intel-tpebs.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
intel-tpebs.h perf stat: Add mean, min, max and last --tpebs-mode options 2025-04-25 12:31:36 -03:00
intlist.c
intlist.h
iostat.c perf stat: Pass through 'struct outstate' 2022-11-24 09:40:37 -03:00
iostat.h perf stat: Pass through 'struct outstate' 2022-11-24 09:40:37 -03:00
jit.h perf jit: Constify filename argument 2024-08-19 14:51:46 -03:00
jitdump.c perf jitdump: Constify variables storing the result of strchr() on const tables 2026-01-27 02:36:24 -03:00
jitdump.h
kvm-stat.c perf session: Add e_flags to the e_machine helper 2026-02-03 18:01:27 -03:00
kvm-stat.h perf kvm: Wire up e_machine 2026-02-03 18:01:27 -03:00
kwork.h perf kwork: Make perf_kwork_add_work a callback 2024-12-18 16:24:33 -03:00
levenshtein.c
levenshtein.h
libbfd.c perf annotate: Fix BUILD_NONDISTRO=1 missing args->ms conversions to pointer 2026-01-26 18:21:15 -03:00
libbfd.h perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
libdw.c perf powerpc: Unify the skip-callchain-idx libdw with that for addr2line 2026-01-20 13:04:38 -03:00
libdw.h perf powerpc: Unify the skip-callchain-idx libdw with that for addr2line 2026-01-20 13:04:38 -03:00
llvm-c-helpers.cpp perf llvm-add2line: Remove unused symbol_conf.h include 2025-01-08 17:38:32 -03:00
llvm-c-helpers.h perf annotate: LLVM-based disassembler 2024-09-03 10:39:20 -03:00
llvm.c perf disasm: Rework the string arch__is to use the ELF machine 2026-01-23 16:58:38 -03:00
llvm.h perf srcline: Fallback between addr2line implementations 2025-10-06 16:47:49 -03:00
lock-contention.c perf lock: Move common lock contention code to new file 2024-12-18 16:24:33 -03:00
lock-contention.h perf lock contention: Add -J/--inject-delay option 2025-05-09 14:32:15 -03:00
lzma.c perf tools: Switch printf("...%s", strerror(errno)) to printf("...%m") 2026-01-14 17:22:50 -03:00
machine.c perf callchain lbr: Make the leaf IP that of the sample 2026-02-06 18:10:44 -03:00
machine.h perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
map.c perf map: Constify objdump offset/address conversion APIs 2025-10-02 15:36:13 -03:00
map.h perf map: Constify objdump offset/address conversion APIs 2025-10-02 15:36:13 -03:00
map_symbol.c perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
map_symbol.h perf map_symbol: Switch from holding maps to holding thread 2026-01-23 16:58:39 -03:00
maps.c perf maps: Fix reference count leak in maps__find_ams() 2026-01-23 16:58:38 -03:00
maps.h perf unwind-libdw: Don't discard loaded ELF/DWARF after every unwind 2026-01-20 15:43:56 -03:00
mem-events.c perf mem-events: Don't leak online CPU map 2025-12-03 11:07:46 -08:00
mem-events.h perf mem: Add 'dtlb' output field 2025-05-02 15:36:14 -03:00
mem-info.c perf hist: Correct hist_entry->mem_info refcounts 2024-08-01 18:55:55 -03:00
mem-info.h perf hist: Correct hist_entry->mem_info refcounts 2024-08-01 18:55:55 -03:00
mem2node.c
mem2node.h
memswap.c
memswap.h
metricgroup.c perf metricgroup: Don't early exit if no CPUID table exists 2026-02-06 11:58:51 -03:00
metricgroup.h perf metricgroup: Update comment on location of metric_event list 2025-11-03 20:57:21 -08:00
mmap.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
mmap.h perf tools: Deadcode removal 2025-02-10 11:46:02 -08:00
mutex.c perf libbfd: Ensure libbfd is initialized prior to use 2025-11-13 17:55:19 -03:00
mutex.h perf libbfd: Ensure libbfd is initialized prior to use 2025-11-13 17:55:19 -03:00
namespaces.c perf namespaces: Avoid get_current_dir_name dependency 2025-10-03 15:28:04 -03:00
namespaces.h perf namespaces: Fixup the nsinfo__in_pidns() return type, its bool 2025-01-08 17:31:06 -03:00
off_cpu.h perf record --off-cpu: Add --off-cpu-thresh option 2025-05-05 21:51:54 -03:00
ordered-events.c tools: Rename __fallthrough to fallthrough 2023-04-06 21:41:00 -03:00
ordered-events.h
parse-branch-options.c perf tools: Add branch counter knob 2023-11-09 13:47:50 -03:00
parse-branch-options.h
parse-events.c perf evlist: Special map propagation for tool events that read on 1 CPU 2026-02-10 09:33:28 -03:00
parse-events.h perf tools: Add support for perf_event_attr::config4 2025-11-24 12:20:06 -08:00
parse-events.l perf tools: Add support for perf_event_attr::config4 2025-11-24 12:20:06 -08:00
parse-events.y perf parse-events: Remove hard coded legacy hardware and cache parsing 2025-10-15 23:59:11 +09:00
parse-regs-options.c perf regs: Remove __weak attributive arch__xxx_reg_mask() functions 2026-02-06 12:16:09 -03:00
parse-regs-options.h
parse-sublevel-options.c
parse-sublevel-options.h
path.c perf path: Remove unused is_executable_file() 2024-12-23 13:53:08 -03:00
path.h perf path: Remove unused is_executable_file() 2024-12-23 13:53:08 -03:00
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
perf_api_probe.c perf perf_api_probe: Avoid scanning all PMUs, try software PMU first 2025-10-15 23:59:10 +09:00
perf_api_probe.h
perf_event_attr_fprintf.c perf tools: Minimal DEFERRED_CALLCHAIN support 2025-12-02 16:13:32 -08:00
perf_regs.c perf regs: Remove __weak attributive arch_sdt_arg_parse_op() function 2026-02-06 12:16:12 -03:00
perf_regs.h perf regs: Remove __weak attributive arch_sdt_arg_parse_op() function 2026-02-06 12:16:12 -03:00
pfm.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
pfm.h perf list: List callback support for libpfm 2022-11-24 10:04:52 -03:00
pmu.c perf tools changes for v7.0: 2026-02-21 10:51:08 -08:00
pmu.h perf evlist: Reduce affinity use and move into iterator, fix no affinity 2026-02-10 09:34:44 -03:00
pmu.l perf pmu: Make parser reentrant 2023-04-06 21:40:28 -03:00
pmu.y perf pmu: Add YYDEBUG 2023-09-12 17:47:00 -03:00
pmus.c perf list: Skip ABI PMUs when printing pmu values 2025-07-26 16:31:43 -07:00
pmus.h perf pmus: Factor perf_pmus__find_by_attr out of evsel__find_pmu 2025-07-24 13:41:35 -07:00
powerpc-vpadtl.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
powerpc-vpadtl.h perf powerpc: Process auxtrace events and display in 'perf report -D' 2025-10-01 11:22:04 -03:00
print-events.c perf list: Don't write to const memory 2026-01-21 11:01:22 -03:00
print-events.h perf print-events: Remove print_symbol_events 2025-10-15 23:59:11 +09:00
print_binary.c
print_binary.h
print_insn.c perf capstone: Move capstone functionality into its own file 2025-10-02 15:36:59 -03:00
print_insn.h perf annotate: Use capstone_init and remove open_capstone_handle from disasm.c 2024-07-31 16:12:59 -03:00
probe-event.c perf probe-event: Ensure probe event nsinfo is always cleared 2025-12-03 11:07:23 -08:00
probe-event.h perf probe: Replace unacceptable characters when generating event name 2024-12-10 15:41:10 -03:00
probe-file.c perf regs: Remove __weak attributive arch_sdt_arg_parse_op() function 2026-02-06 12:16:12 -03:00
probe-file.h perf: Remove unused del_perf_probe_events() 2024-11-16 17:07:31 -03:00
probe-finder.c perf build-id: Ensure struct build_id is empty before use 2025-07-25 10:37:55 -07:00
probe-finder.h perf probe: Pick the correct dwarf die while adding probe points 2025-02-26 14:25:14 -08:00
pstack.c perf util: Remove unused pstack__pop 2025-03-10 11:31:24 -07:00
pstack.h perf util: Remove unused pstack__pop 2025-03-10 11:31:24 -07:00
python.c perf python: Correct copying of metric_leader in an evsel 2025-12-02 16:12:49 -08:00
rblist.c
rblist.h
record.c perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_empty 2024-03-21 10:41:28 -03:00
record.h perf record: Split --data-mmap option 2025-12-17 09:30:37 -03:00
rlimit.c perf evsel: Rename evsel__increase_rlimit to rlimit__increase_nofile 2023-10-25 10:02:11 -07:00
rlimit.h perf evsel: Rename evsel__increase_rlimit to rlimit__increase_nofile 2023-10-25 10:02:11 -07:00
rwsem.c perf rwsem: Add clang's -Wthread-safety annotations 2025-05-21 15:07:13 -03:00
rwsem.h perf rwsem: Add clang's -Wthread-safety annotations 2025-05-21 15:07:13 -03:00
s390-cpumcf-kernel.h perf report: Add s390 raw data interpretation for PAI counters 2023-11-15 12:51:53 -05:00
s390-cpumsf-kernel.h
s390-cpumsf.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
s390-cpumsf.h
s390-sample-raw.c perf tools: Cache counter names for raw samples on s390 2025-10-31 12:46:19 -07:00
sample-raw.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
sample-raw.h perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
sample.c perf callchain: Switch callchain_param_setup from an arch to an e_machine 2026-01-27 01:35:47 -03:00
sample.h perf script: Fix script_fetch_insn for more than just x86 2026-01-27 01:35:22 -03:00
session.c perf thread: Don't require machine to compute the e_machine 2026-02-03 18:01:27 -03:00
session.h perf session: Add e_flags to the e_machine helper 2026-02-03 18:01:27 -03:00
setns.c
setup.py perf build python: Don't leave a.out file when building with clang 2025-10-13 01:58:51 -07:00
sharded_mutex.c perf sharded_mutex: Introduce sharded_mutex 2023-06-20 17:03:43 -07:00
sharded_mutex.h perf sharded_mutex: Introduce sharded_mutex 2023-06-20 17:03:43 -07:00
sideband_evlist.c
smt.c perf expr: Make the online topology accessible globally 2023-02-19 08:03:12 -03:00
smt.h perf expr: Make the online topology accessible globally 2023-02-19 08:03:12 -03:00
sort.c perf sort: Replace static cacheline size with sysconf cacheline size 2026-02-06 18:51:15 -03:00
sort.h perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
spark.c perf spark: Fix includes and add SPDX 2025-07-11 12:36:40 -07:00
spark.h perf spark: Fix includes and add SPDX 2025-07-11 12:36:40 -07:00
srccode.c perf fncache: Switch to using hashmap 2025-05-13 16:36:22 -03:00
srccode.h
srcline.c perf powerpc: Unify the skip-callchain-idx libdw with that for addr2line 2026-01-20 13:04:38 -03:00
srcline.h perf srcline: Add configuration support for the addr2line style 2026-01-13 16:09:14 -03:00
stat-display.c perf stat: Ensure metrics are displayed even with failed events 2026-02-06 18:18:32 -03:00
stat-shadow.c perf stat-shadow: In prepare_metric fix guard on reading NULL perf_stat_evsel 2026-02-10 09:33:13 -03:00
stat.c perf tool: Add the perf_tool argument to all callbacks 2025-11-07 13:25:05 -08:00
stat.h perf stat: Ensure metrics are displayed even with failed events 2026-02-06 18:18:32 -03:00
strbuf.c
strbuf.h
stream.c perf stream: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
stream.h perf stream: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
strfilter.c tools: Rename __fallthrough to fallthrough 2023-04-06 21:41:00 -03:00
strfilter.h
string.c perf string: Avoid undefined NULL+1 2024-12-12 15:53:36 -03:00
string2.h perf string: Add strpbrk_esq() and strdup_esq() for escape and quote 2024-11-14 16:56:32 -03:00
strlist.c perf strlist: Remove dont_dupstr logic, used only once 2026-01-27 21:19:24 -03:00
strlist.h perf strlist: Remove dont_dupstr logic, used only once 2026-01-27 21:19:24 -03:00
svghelper.c perf cpumap: Reduce transitive dependencies on libperf MAX_NR_CPUS 2024-12-09 17:52:41 -03:00
svghelper.h
symbol-elf.c perf symbol-elf: Fix leak of ELF files with GNU debugdata 2026-01-20 12:52:08 -03:00
symbol-minimal.c perf symbol: Fix ENOENT case for filename__read_build_id 2025-12-17 07:30:51 -08:00
symbol.c perf symbol: Remove Rust symbol workarounds 2026-01-05 12:44:09 -03:00
symbol.h perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
symbol_conf.h perf srcline: Add configuration support for the addr2line style 2026-01-13 16:09:14 -03:00
symbol_fprintf.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
symsrc.h perf symbols: Allow for static executables with .plt 2023-02-01 21:51:51 -03:00
synthetic-events.c perf synthetic-events: Fix stale build ID in module MMAP2 records 2026-03-11 17:47:42 -03:00
synthetic-events.h perf sched stats: Add record and rawdump support 2026-01-22 12:29:28 -03:00
syscalltbl.c perf syscalltbl: Mask off ABI type for MIPS system calls 2025-03-20 22:58:23 -07:00
syscalltbl.h perf syscalltbl: Remove struct syscalltbl 2025-03-20 22:57:57 -07:00
target.c perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
target.h perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
term.c
term.h
thread-stack.c perf thread-stack: Switch thread_stack__init() to use e_machine 2026-01-27 01:35:47 -03:00
thread-stack.h
thread.c perf thread: Don't require machine to compute the e_machine 2026-02-03 18:01:27 -03:00
thread.h perf thread: Add optional e_flags output argument to thread__e_machine 2026-01-26 18:21:20 -03:00
thread_map.c perf strlist: Remove dont_dupstr logic, used only once 2026-01-27 21:19:24 -03:00
thread_map.h perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
threads.c perf tools: Remove unnecessary parentheses 2024-10-14 12:04:31 -07:00
threads.h perf threads: Reduce table size from 256 to 8 2024-03-03 22:52:13 -08:00
time-utils.c perf time-utils: Constify variables storing the result of strchr() on const tables 2026-01-27 02:31:29 -03:00
time-utils.h
tool.c perf sched stats: Add record and rawdump support 2026-01-22 12:29:28 -03:00
tool.h perf sched stats: Add record and rawdump support 2026-01-22 12:29:28 -03:00
tool_pmu.c Revert "perf tool_pmu: More accurately set the cpus for tool events" 2026-02-10 09:32:34 -03:00
tool_pmu.h Revert "perf tool_pmu: More accurately set the cpus for tool events" 2026-02-10 09:32:34 -03:00
top.c perf top: Switch user option to use BPF filter 2025-06-09 11:18:18 -07:00
top.h perf top: Switch user option to use BPF filter 2025-06-09 11:18:18 -07:00
topdown.c perf stat: Implement --topdown using json metrics 2023-02-19 08:07:24 -03:00
topdown.h perf stat: Implement --topdown using json metrics 2023-02-19 08:07:24 -03:00
tp_pmu.c perf tp_pmu: Address const-correctness errors in recent glibcs 2026-01-27 02:22:00 -03:00
tp_pmu.h perf tp_pmu: Add event APIs 2025-07-26 16:31:43 -07:00
trace-event-info.c perf trace-event: Constify variables storing the result of strchr() on const tables 2026-01-27 02:26:48 -03:00
trace-event-parse.c perf trace-event: Constify print arguments 2024-12-09 17:52:42 -03:00
trace-event-read.c perf build: Include libtraceevent headers directly indicated by pkg-config 2024-11-08 22:42:57 -08:00
trace-event-scripting.c perf script: Fix script_fetch_insn for more than just x86 2026-01-27 01:35:22 -03:00
trace-event.c perf build: Include libtraceevent headers directly indicated by pkg-config 2024-11-08 22:42:57 -08:00
trace-event.h perf script: Fix script_fetch_insn for more than just x86 2026-01-27 01:35:22 -03:00
trace.h perf trace: Add --max-summary option 2025-09-19 12:14:29 -03:00
trace_augment.h perf trace: Split BPF skel code to util/bpf_trace_augment.c 2025-06-26 10:31:05 -07:00
tracepoint.c perf tracepoint: Don't scan all tracepoints to test if one exists 2024-05-09 18:46:43 -03:00
tracepoint.h perf tracepoint: Don't scan all tracepoints to test if one exists 2024-05-09 18:46:43 -03:00
trigger.h
tsc.c perf tools: Fix typos Muliplier -> Multiplier 2024-11-13 16:27:35 -03:00
tsc.h perf tool_pmu: Move expr literals to tool_pmu 2024-10-10 23:40:32 -07:00
units.c perf units: Constify variables storing the result of strchr() on const tables 2026-01-27 02:28:33 -03:00
units.h
unwind-libdw.c perf unwind-libdw: Wire up e_flags for CSKY 2026-01-26 18:31:27 -03:00
unwind-libdw.h perf unwind-libdw: Wire up e_flags for CSKY 2026-01-26 18:31:27 -03:00
unwind-libunwind-local.c perf libunwind: Fix calls to thread__e_machine() 2026-02-12 17:45:22 -03:00
unwind-libunwind.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
unwind.h perf unwind: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -03:00
usage.c perf usage: Move usage strings 2023-04-10 19:20:53 -03:00
util.c perf util: Fix NULL check in cpumask_to_cpulist() 2026-01-28 15:18:24 -03:00
util.h perf sched stats: Add support for report subcommand 2026-01-22 12:31:52 -03:00
values.c perf values: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
values.h perf values: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
vdso.c perf vdso: Missed put on 32-bit dsos 2024-09-27 15:38:52 -03:00
vdso.h
zlib.c perf util: Fix compression checks returning -1 as bool 2025-09-12 15:41:57 -03:00
zstd.c perf mmap: Lazily initialize zstd streams to save memory when not using it 2023-11-28 14:25:06 -03:00