linux/tools/perf/util
Rong Bao a355eefc36 perf annotate: Use jump__delete when freeing LoongArch jumps
Currently, the initialization of loongarch_jump_ops does not contain an
assignment to its .free field. This causes disasm_line__free() to fall
through to ins_ops__delete() for LoongArch jump instructions.

ins_ops__delete() will free ins_operands.source.raw and
ins_operands.source.name, and these fields overlaps with
ins_operands.jump.raw_comment and ins_operands.jump.raw_func_start.
Since in loongarch_jump__parse(), these two fields are populated by
strchr()-ing the same buffer, trying to free them will lead to undefined
behavior.

This invalid free usually leads to crashes:

        Process 1712902 (perf) of user 1000 dumped core.
        Stack trace of thread 1712902:
        #0  0x00007fffef155c58 n/a (libc.so.6 + 0x95c58)
        #1  0x00007fffef0f7a94 raise (libc.so.6 + 0x37a94)
        #2  0x00007fffef0dd6a8 abort (libc.so.6 + 0x1d6a8)
        #3  0x00007fffef145490 n/a (libc.so.6 + 0x85490)
        #4  0x00007fffef1646f4 n/a (libc.so.6 + 0xa46f4)
        #5  0x00007fffef164718 n/a (libc.so.6 + 0xa4718)
        #6  0x00005555583a6764 __zfree (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x106764)
        #7  0x000055555854fb70 disasm_line__free (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x2afb70)
        #8  0x000055555853d618 annotated_source__purge (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x29d618)
        #9  0x000055555852300c __hist_entry__tui_annotate (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x28300c)
        #10 0x0000555558526718 do_annotate (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x286718)
        #11 0x000055555852ed94 evsel__hists_browse (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x28ed94)
        #12 0x000055555831fdd0 cmd_report (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x7fdd0)
        #13 0x000055555839b644 handle_internal_command (/home/csmantle/dist/linux-arch/tools/perf/perf + 0xfb644)
        #14 0x00005555582fe6ac main (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x5e6ac)
        #15 0x00007fffef0ddd90 n/a (libc.so.6 + 0x1dd90)
        #16 0x00007fffef0ddf0c __libc_start_main (libc.so.6 + 0x1df0c)
        #17 0x00005555582fed10 _start (/home/csmantle/dist/linux-arch/tools/perf/perf + 0x5ed10)
        ELF object binary architecture: LoongArch

... and it can be confirmed with Valgrind:

        ==1721834== Invalid free() / delete / delete[] / realloc()
        ==1721834==    at 0x4EA9014: free (in /usr/lib/valgrind/vgpreload_memcheck-loongarch64-linux.so)
        ==1721834==    by 0x4106287: __zfree (zalloc.c:13)
        ==1721834==    by 0x42ADC8F: disasm_line__free (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x429B737: annotated_source__purge (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x42811EB: __hist_entry__tui_annotate (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x42848D7: do_annotate (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x428CF33: evsel__hists_browse (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==  Address 0x7d34303 is 35 bytes inside a block of size 62 alloc'd
        ==1721834==    at 0x4EA59B8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-loongarch64-linux.so)
        ==1721834==    by 0x6B80B6F: strdup (strdup.c:42)
        ==1721834==    by 0x42AD917: disasm_line__new (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x42AE5A3: symbol__disassemble_objdump (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x42AF0A7: symbol__disassemble (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x429B3CF: symbol__annotate (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x429C233: symbol__annotate2 (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x42804D3: __hist_entry__tui_annotate (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x42848D7: do_annotate (in /home/csmantle/dist/linux-arch/tools/perf/perf)
        ==1721834==    by 0x428CF33: evsel__hists_browse (in /home/csmantle/dist/linux-arch/tools/perf/perf)

This patch adds the missing free() specialization in loongarch_jump_ops,
which prevents disasm_line__free() from invoking the default cleanup
function.

Fixes: fb7fd2a14a ("perf annotate: Move raw_comment and raw_func_start fields out of 'struct ins_operands'")
Cc: stable@vger.kernel.org
Cc: WANG Rui <wangrui@loongson.cn>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: loongarch@lists.linux.dev
Signed-off-by: Rong Bao <rong.bao@csmantle.top>
Tested-by: WANG Rui <wangrui@loongson.cn>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-13 23:41:11 -07:00
..
annotate-arch perf annotate: Use jump__delete when freeing LoongArch jumps 2026-04-13 23:41:11 -07: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: Handle task exit in BPF syscall summary 2026-02-26 10:49:00 -08:00
cs-etm-decoder perf tools fixes for v7.0: 2nd batch 2026-03-25 00:06:23 -07: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 relative paths for including headers 2026-03-17 17:16:45 -03:00
libunwind
perf-regs-arch perf record: Add support for arch_sdt_arg_parse_op() on s390 2026-03-26 14:38:54 -07:00
scripting-engines libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
Build perf bpf_map: Remove unused code 2026-03-13 14:26:28 -07:00
PERF-VERSION-GEN
addr2line.c perf addr2line: Remove global variable addr2line_timeout_ms 2026-04-08 10:28:49 -07:00
addr2line.h perf addr2line: Remove global variable addr2line_timeout_ms 2026-04-08 10:28:49 -07: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 libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
affinity.h
amd-sample-raw.c
annotate-data.c perf annotate-data: Use DWARF location ranges to preserve reg state 2026-03-19 14:42:29 -07:00
annotate-data.h perf annotate-data: Use DWARF location ranges to preserve reg state 2026-03-19 14:42:29 -07:00
annotate.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07: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: Improve SIMD flags setting 2026-04-10 09:52:06 -07: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 config: Rename symbol_conf::disable_add2line_warn 2026-04-08 10:28:49 -07:00
block-info.h
block-range.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
block-range.h
bpf-event.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
bpf-event.h
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
bpf-filter.y
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 tools: Make more global variables static 2026-04-08 19:21:04 -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 tools: Use calloc() where applicable 2026-04-08 19:21:05 -07: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 libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
bpf_kwork_top.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07: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_off_cpu.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
bpf_trace_augment.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
branch.c
branch.h perf branch: Avoid incrementing NULL 2026-03-13 14:13:02 -07:00
btf.c
btf.h
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
cache.h
cacheline.c
cacheline.h
call-path.c
call-path.h
callchain.c perf sample: Make sure perf_sample__init/exit are used 2026-04-05 23:12:15 -07:00
callchain.h perf callchain: Refactor callchain option parsing 2026-03-19 14:42:46 -07:00
cap.c perf tools: Switch printf("...%s", strerror(errno)) to printf("...%m") 2026-01-14 17:22:50 -03:00
cap.h
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 cgroup: Update metric leader in evlist__expand_cgroup 2026-04-05 23:23:33 -07:00
cgroup.h
clockid.c
clockid.h perf clockid: Add missing include 2026-04-02 19:35:16 -07:00
cloexec.c
cloexec.h
color.c
color.h
color_config.c
comm.c
comm.h
compress.h
config.c perf addr2line: Remove global variable addr2line_timeout_ms 2026-04-08 10:28:49 -07:00
config.h
copyfile.c
copyfile.h
counts.c
counts.h
cpumap.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
cpumap.h
cputopo.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
cputopo.h
cs-etm-base.c
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 tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
data-convert-json.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
data-convert.h perf data: Allow filtering conversion by time range 2026-01-06 19:20:02 -03:00
data.c perf data: Clean up use_stdio and structures 2026-04-08 19:21:17 -07:00
data.h perf data: Clean up use_stdio and structures 2026-04-08 19:21:17 -07:00
db-export.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
db-export.h
debug.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
debug.h
debuginfo.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
debuginfo.h
demangle-cxx.cpp
demangle-cxx.h
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
demangle-rust-v0.h
disasm.c perf annotate: Use jump__delete when freeing LoongArch jumps 2026-04-13 23:41:11 -07:00
disasm.h perf annotate: Use jump__delete when freeing LoongArch jumps 2026-04-13 23:41:11 -07: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: Replace starts_with with strstarts 2026-03-03 17:04:49 -08:00
drm_pmu.h
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: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
dsos.h
dump-insn.h
dwarf-aux.c perf dwarf-aux: Collect all variable locations for insn tracking 2026-03-19 14:42:30 -07:00
dwarf-aux.h perf annotate-data: Use DWARF location ranges to preserve reg state 2026-03-19 14:42:29 -07: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 libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
env.h perf tools: Save cln_size header 2026-04-05 22:30:52 -07:00
event.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
event.h perf sched stats: Add record and rawdump support 2026-01-22 12:29:28 -03:00
events_stats.h
evlist.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
evlist.h perf evlist: Improve default event for s390 2026-03-19 14:42:46 -07:00
evsel.c perf sample: Add evsel to struct perf_sample 2026-04-05 23:12:15 -07:00
evsel.h perf evsel: Constify option arguments to config functions 2026-03-19 14:42:46 -07: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
evswitch.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
evswitch.h
expr.c perf expr: Add '\n' in literal parse errors 2026-04-02 18:10:59 -07:00
expr.h
expr.l
expr.y
find-map.c
fncache.c
fncache.h
ftrace.h
genelf.c perf genelf: Switch from SHA-1 to BLAKE2s for build ID generation 2026-01-13 17:03:28 -03:00
genelf.h
genelf_debug.c
hashmap.c
hashmap.h
header.c perf header: Add sanity checks to HEADER_BPF_BTF processing 2026-04-13 23:21:53 -07:00
header.h perf tools: Save cln_size header 2026-04-05 22:30:52 -07:00
help-unknown-cmd.c
help-unknown-cmd.h
hisi-ptt.c
hisi-ptt.h
hist.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
hist.h perf report: Add comm_nodigit sort key 2026-03-26 15:22:18 -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
intel-tpebs.c perf header: Refactor pipe mode end marker handling 2026-04-02 19:35:16 -07:00
intel-tpebs.h
intlist.c
intlist.h
iostat.c
iostat.h
jit.h
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
levenshtein.c
levenshtein.h
libbfd.c perf config: Rename symbol_conf::disable_add2line_warn 2026-04-08 10:28:49 -07: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
llvm-c-helpers.h
llvm.c perf annotate: Specify llvm features="+all" for aarch64 2026-03-04 18:05:18 -08:00
llvm.h perf srcline: Fallback between addr2line implementations 2025-10-06 16:47:49 -03:00
lock-contention.c
lock-contention.h
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
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 copy_from that can break sorted by name order 2026-04-08 10:28:49 -07: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
mem-info.c
mem-info.h
mem2node.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
mem2node.h
memswap.c
memswap.h
metricgroup.c perf metricgroup: Refine error logs 2026-04-02 18:11:00 -07: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
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
off_cpu.h
ordered-events.c perf ordered-events: Event processing consistency with the regular reader 2026-04-02 19:35:16 -07:00
ordered-events.h
parse-branch-options.c
parse-branch-options.h
parse-events.c perf tools: Add --pmu-filter option for filtering PMUs 2026-03-27 13:58:01 -07: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
path.h
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 record: Add support for arch_sdt_arg_parse_op() on s390 2026-03-26 14:38:54 -07:00
perf_regs.h perf record: Add support for arch_sdt_arg_parse_op() on s390 2026-03-26 14:38:54 -07: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
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
pmu.y
pmus.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
pmus.h
powerpc-vpadtl.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07: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
probe-event.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
probe-event.h
probe-file.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
probe-file.h
probe-finder.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
probe-finder.h
pstack.c
pstack.h
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
record.h perf record: Split --data-mmap option 2025-12-17 09:30:37 -03:00
rlimit.c
rlimit.h
rwsem.c
rwsem.h
s390-cpumcf-kernel.h
s390-cpumsf-kernel.h
s390-cpumsf.c
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
sample-raw.h
sample.c perf sample: Add evsel to struct perf_sample 2026-04-05 23:12:15 -07:00
sample.h perf sample: Fix documentation typo 2026-04-12 12:12:11 -07:00
session.c perf data: Clean up use_stdio and structures 2026-04-08 19:21:17 -07: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
sharded_mutex.h
sideband_evlist.c
smt.c
smt.h
sort.c perf sort: Sort disabled and full predicated flags 2026-04-10 09:52:06 -07:00
sort.h perf report: Add comm_nodigit sort key 2026-03-26 15:22:18 -07:00
spark.c
spark.h
srccode.c
srccode.h
srcline.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
srcline.h perf srcline: Add configuration support for the addr2line style 2026-01-13 16:09:14 -03:00
stat-display.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
stat-shadow.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
stat.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07: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
stream.h
strfilter.c
strfilter.h
string.c
string2.h
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 libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
svghelper.h
symbol-elf.c perf tools: Fix module symbol resolution for non-zero .text sh_addr 2026-04-02 12:51:10 -07: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 symbols: Make variable receiving result strrchr() const 2026-04-08 19:21:04 -07:00
symbol.h perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
symbol_conf.h perf addr2line: Remove global variable addr2line_timeout_ms 2026-04-08 10:28:49 -07:00
symbol_fprintf.c
symsrc.h
synthetic-events.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
synthetic-events.h perf sched stats: Add record and rawdump support 2026-01-22 12:29:28 -03:00
syscalltbl.c
syscalltbl.h
target.c
target.h perf target: Constify simple check functions 2026-03-19 14:42:46 -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
threads.c
threads.h
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
top.h
topdown.c
topdown.h
tp_pmu.c perf tp_pmu: Address const-correctness errors in recent glibcs 2026-01-27 02:22:00 -03:00
tp_pmu.h
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
trace-event-read.c
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
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
tracepoint.c
tracepoint.h
trigger.h
tsc.c
tsc.h
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 tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
unwind-libunwind.c
unwind.h
usage.c
util.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
util.h perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
values.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
values.h
vdso.c
vdso.h
zlib.c
zstd.c