linux/tools/perf/util
Namhyung Kim 55ee3d005d perf annotate-data: Add a cache for global variable types
They are often searched by many different places.  Let's add a cache
for them to reduce the duplicate DWARF access.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: https://lore.kernel.org/r/20240319055115.4063940-23-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2024-03-21 10:41:29 -03:00
..
arm-spe-decoder perf arm-spe: Fix a dangling Documentation/arm64 reference 2023-06-21 08:53:31 -06:00
bpf_skel perf trace: Collect sys_nanosleep first argument 2024-03-21 10:41:26 -03:00
cs-etm-decoder perf cs-etm: Add exception level consistency check 2023-06-12 18:18:13 -03:00
hisi-ptt-decoder
include tools headers: Update the copy of x86's mem{cpy,set}_64.S used in 'perf bench' 2024-01-30 11:31:15 -03:00
intel-pt-decoder perf intel-pt: Prefer get_unaligned_le64 to memcpy_le64 2023-10-17 12:40:50 -07: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 parse-regs: Always build perf register functions 2024-02-15 13:48:20 -08:00
scripting-engines perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
addr_location.c
addr_location.h
affinity.c
affinity.h
amd-sample-raw.c perf script ibs: Remove unused include 2023-08-23 08:41:52 -03:00
annotate-data.c perf annotate-data: Add a cache for global variable types 2024-03-21 10:41:29 -03:00
annotate-data.h perf annotate-data: Add a cache for global variable types 2024-03-21 10:41:29 -03:00
annotate.c perf annotate-data: Add stack canary type 2024-03-21 10:41:29 -03:00
annotate.h perf annotate: Parse x86 segment register location 2024-03-21 10:41:29 -03:00
archinsn.h
arm-spe.c
arm-spe.h perf pmu: Lazily compute default config 2023-10-17 12:40:50 -07:00
arm64-frame-pointer-unwind-support.c
arm64-frame-pointer-unwind-support.h
auxtrace.c perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_empty 2024-03-21 10:41:28 -03:00
auxtrace.h perf auxtrace: Add 'T' itrace option for timestamp trace 2023-11-27 10:21:27 -03:00
block-info.c perf ui/browser/annotate: Use global annotation_options 2023-12-07 17:18:06 -03:00
block-info.h perf ui/browser/annotate: Use global annotation_options 2023-12-07 17:18:06 -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 maps: Get map before returning in maps__find 2024-02-12 12:35:26 -08:00
bpf-event.h perf env: Avoid recursively taking env->bpf_progs.lock 2024-01-03 17:54:54 -03:00
bpf-filter.c perf bpf-filter: Fix sample flag check with || 2023-08-15 16:41:48 -03:00
bpf-filter.h
bpf-filter.l
bpf-filter.y perf bpf-filter: Add YYDEBUG 2023-09-12 17:50:36 -03:00
bpf-prologue.h
bpf-utils.c
bpf-utils.h
bpf_counter.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
bpf_counter.h
bpf_counter_cgroup.c
bpf_ftrace.c
bpf_kwork.c perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
bpf_kwork_top.c perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
bpf_lock_contention.c perf machine: Move machine's threads into its own abstraction 2024-03-03 22:51:44 -08:00
bpf_map.c
bpf_map.h
bpf_off_cpu.c perf offcpu: Add missed btf_free 2023-10-25 13:38:33 -07:00
branch.c perf callchain: Make display use of branch_type_stat const 2023-10-25 13:38:50 -07:00
branch.h perf callchain: Make display use of branch_type_stat const 2023-10-25 13:38:50 -07:00
Build perf threads: Move threads to its own files 2024-03-03 22:51:55 -08:00
build-id.c perf build-id: Simplify build_id_cache__cachedir() 2023-08-25 10:24:10 -03:00
build-id.h
cache.h
cacheline.c
cacheline.h
call-path.c
call-path.h
callchain.c perf maps: Hide maps internals 2024-02-12 12:35:41 -08:00
callchain.h perf callchain: Minor layout changes to callchain_list 2023-10-25 13:39:32 -07:00
cap.c
cap.h
cgroup.c perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
cgroup.h perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
clockid.c
clockid.h
cloexec.c
cloexec.h
color.c
color.h
color_config.c
comm.c
comm.h
compress.h perf mmap: Lazily initialize zstd streams to save memory when not using it 2023-11-28 14:25:06 -03:00
config.c perf parse-events: Remove BPF event support 2023-08-15 16:41:48 -03:00
config.h
copyfile.c
copyfile.h
counts.c
counts.h
cpu-set-sched.h
cpumap.c perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
cpumap.h perf stat: Support per-cluster aggregation 2024-02-09 14:59:53 -08: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
cs-etm-base.c
cs-etm.c perf cs-etm: Enable itrace option 'T' 2023-11-27 10:21:27 -03:00
cs-etm.h perf pmu: Lazily compute default config 2023-10-17 12:40:50 -07:00
data-convert-bt.c
data-convert-json.c perf data convert: Fix segfault when converting to json when cpu_desc isn't set 2024-02-26 08:30:17 -08:00
data-convert.h
data.c perf data: Minor code style alignment cleanup 2024-01-22 12:08:21 -08:00
data.h perf data: Minor code style alignment cleanup 2024-01-22 12:08:21 -08:00
db-export.c perf db-export: Fix missing reference count get in call_path_from_sample() 2024-01-04 18:29:17 -03:00
db-export.h
debug.c perf annotate-data: Add debug messages 2024-03-21 10:41:28 -03:00
debug.h perf annotate-data: Add debug messages 2024-03-21 10:41:28 -03:00
debuginfo.c perf tools: Add util/debuginfo.[ch] files 2023-11-10 09:03:54 -03:00
debuginfo.h perf tools: Add util/debuginfo.[ch] files 2023-11-10 09:03:54 -03:00
demangle-cxx.cpp
demangle-cxx.h
demangle-java.c
demangle-java.h
demangle-ocaml.c
demangle-ocaml.h
demangle-rust.c
demangle-rust.h
dlfilter.c perf tools fixes for v6.6: 2nd batch 2023-10-30 13:46:27 -07:00
dlfilter.h
dso.c perf annotate-data: Add a cache for global variable types 2024-03-21 10:41:29 -03:00
dso.h perf annotate-data: Add a cache for global variable types 2024-03-21 10:41:29 -03:00
dsos.c
dsos.h
dump-insn.c
dump-insn.h
dwarf-aux.c perf annotate-data: Maintain variable type info 2024-03-21 10:41:28 -03:00
dwarf-aux.h perf dwarf-aux: Add die_find_func_rettype() 2024-03-21 10:41:28 -03:00
dwarf-regs.c perf dwarf-regs: Add get_dwarf_regnum() 2023-12-23 10:56:05 -03:00
env.c perf env: Avoid recursively taking env->bpf_progs.lock 2024-01-03 17:54:54 -03:00
env.h perf stat: Support per-cluster aggregation 2024-02-09 14:59:53 -08:00
event.c perf maps: Get map before returning in maps__find 2024-02-12 12:35:26 -08:00
event.h perf symbols: Add kallsyms__get_symbol_start() 2023-07-28 19:01:16 -03:00
events_stats.h
evlist.c perf evlist: Fix evlist__new_default() for > 1 core PMU 2024-01-30 11:40:28 -03:00
evlist.h perf top: Uniform the event name for the hybrid machine 2023-12-14 19:13:10 -03:00
evsel.c perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() 2024-02-01 22:11:45 -08:00
evsel.h perf util: Add evsel__taskstate() to parse the task state info instead 2024-01-22 23:02:37 -08:00
evsel_config.h
evsel_fprintf.c
evsel_fprintf.h
evswitch.c
evswitch.h
expr.c perf expr: Fix "has_event" function for metric style events 2024-02-13 13:48:06 -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
fncache.h
ftrace.h
genelf.c perf genelf: Set ELF program header addresses properly 2023-12-14 18:56:34 -03:00
genelf.h
genelf_debug.c perf jit: Fix incorrect file name in DWARF line table 2023-06-20 22:18:58 -07:00
generate-cmdlist.sh
get_current_dir_name.c
get_current_dir_name.h
hashmap.c
hashmap.h perf tools: Update copy of libbpf's hashmap.c 2023-09-11 10:31:02 -03:00
header.c perf env: Avoid recursively taking env->bpf_progs.lock 2024-01-03 17:54:54 -03:00
header.h
help-unknown-cmd.c perf help: Ensure clean_cmds is called on all paths 2023-06-12 18:18:14 -03:00
help-unknown-cmd.h
hisi-ptt.c perf hisi-ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event() 2023-12-13 13:56:09 -03:00
hisi-ptt.h
hist.c perf tools: Fix calloc() arguments to address error introduced in gcc-14 2024-01-26 12:56:01 -03:00
hist.h perf report: Add 'symoff' sort key 2023-12-23 22:39:42 -03:00
intel-bts.c
intel-bts.h
intel-pt.c perf intel-pt: Fix async branch flags 2023-09-29 23:59:08 -07:00
intel-pt.h perf pmu: Lazily compute default config 2023-10-17 12:40:50 -07:00
intlist.c
intlist.h
iostat.c
iostat.h
jit.h
jitdump.c perf jitdump: Avoid memory leak 2023-10-12 10:01:56 -07:00
jitdump.h
kvm-stat.h
kwork.h perf kwork top: Implements BPF-based cpu usage statistics 2023-09-12 17:31:59 -03:00
levenshtein.c
levenshtein.h
lock-contention.h perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
lzma.c perf lzma: Convert some pr_err() to pr_debug() as callers already use pr_debug() 2023-08-22 16:53:32 -03:00
machine.c perf threads: Move threads to its own files 2024-03-03 22:51:55 -08:00
machine.h perf threads: Move threads to its own files 2024-03-03 22:51:55 -08:00
map.c perf map: Add map__objdump_2rip() 2024-03-21 10:41:28 -03:00
map.h perf map: Add map__objdump_2rip() 2024-03-21 10:41:28 -03:00
map_symbol.c perf mem_info: Add and use map_symbol__exit and addr_map_symbol__exit 2023-10-25 13:39:58 -07:00
map_symbol.h perf mem_info: Add and use map_symbol__exit and addr_map_symbol__exit 2023-10-25 13:39:58 -07:00
maps.c perf map: Fix map reference count issues 2024-02-29 18:06:00 -08:00
maps.h perf maps: Locking tidy up of nr_maps 2024-02-12 12:35:41 -08:00
mem-events.c perf mem: Clean up perf_pmus__num_mem_pmus() 2024-01-24 14:05:22 -08:00
mem-events.h perf mem: Clean up perf_pmus__num_mem_pmus() 2024-01-24 14:05:22 -08:00
mem2node.c
mem2node.h
memswap.c
memswap.h
metricgroup.c perf metrics: Fix segv for metrics with no events 2024-02-29 13:40:13 -08:00
metricgroup.h perf metrics: Sort the Default metricgroup 2023-06-16 09:56:36 -03:00
mmap.c perf mmap: Lazily initialize zstd streams to save memory when not using it 2023-11-28 14:25:06 -03:00
mmap.h perf mmap: Lazily initialize zstd streams to save memory when not using it 2023-11-28 14:25:06 -03:00
mutex.c
mutex.h
namespaces.c
namespaces.h
off_cpu.h
ordered-events.c
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 parse-events: Print all errors 2024-02-02 13:08:05 -08:00
parse-events.h perf parse-events: Print all errors 2024-02-02 13:08:05 -08:00
parse-events.l perf parse-events: Avoid erange from hex numbers 2023-10-12 10:01:55 -07:00
parse-events.y perf parse-events: Print all errors 2024-02-02 13:08:05 -08:00
parse-regs-options.c perf parse-regs: Introduce a weak function arch__sample_reg_masks() 2024-02-15 13:48:36 -08: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-VERSION-GEN
perf_api_probe.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
perf_api_probe.h
perf_event_attr_fprintf.c perf tools: Add branch counter knob 2023-11-09 13:47:50 -03:00
perf_regs.c perf parse-regs: Introduce a weak function arch__sample_reg_masks() 2024-02-15 13:48:36 -08:00
perf_regs.h perf parse-regs: Introduce a weak function arch__sample_reg_masks() 2024-02-15 13:48:36 -08:00
pfm.c perf list pfm: Retry supported test with exclude_kernel 2023-09-12 17:32:00 -03:00
pfm.h
pmu.c perf pmu: Fix a potential memory leak in perf_pmu__lookup() 2024-02-26 21:43:00 -08:00
pmu.h perf mem: Add mem_events into the supported perf_pmu 2024-01-24 14:03:33 -08:00
pmu.l
pmu.y perf pmu: Add YYDEBUG 2023-09-12 17:47:00 -03:00
pmus.c perf mem: Clean up perf_pmus__num_mem_pmus() 2024-01-24 14:05:22 -08:00
pmus.h perf mem: Clean up perf_pmus__num_mem_pmus() 2024-01-24 14:05:22 -08:00
print-events.c perf print-events: make is_event_supported() more robust 2024-02-23 14:16:33 -08:00
print-events.h perf pmus: Skip duplicate PMUs and don't print list suffix by default 2023-08-29 14:16:14 -03:00
print_binary.c
print_binary.h
print_insn.c perf: util: use capstone disasm engine to show assembly instructions 2024-02-20 18:06:48 -08:00
print_insn.h perf: util: use capstone disasm engine to show assembly instructions 2024-02-20 18:06:48 -08:00
probe-event.c perf map: Fix map reference count issues 2024-02-29 18:06:00 -08:00
probe-event.h perf probe: Make synthesize_perf_probe_point() private to probe-event.c 2023-08-07 16:40:29 -03:00
probe-file.c
probe-file.h
probe-finder.c perf probe: Convert to check dwarf_getcfi feature 2023-11-10 09:04:21 -03:00
probe-finder.h perf tools: Add util/debuginfo.[ch] files 2023-11-10 09:03:54 -03:00
pstack.c
pstack.h
python-ext-sources perf evsel: Rename get_states() to parse_task_states() and make it public 2024-02-01 22:10:27 -08:00
python.c perf tools: Make it possible to see perf's kernel and module memory mappings 2024-02-08 15:49:39 -08:00
rb_resort.h perf trace: Ignore thread hashing in summary 2024-03-03 22:51:18 -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
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 debug mode that uses a mutex 2023-10-25 13:35:35 -07:00
rwsem.h perf rwsem: Add debug mode that uses a mutex 2023-10-25 13:35:35 -07: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
s390-cpumsf.h
s390-sample-raw.c perf report: Remove warning on missing raw data for s390 2023-11-27 15:38:37 -03:00
sample-raw.c
sample-raw.h
sample.h perf tools: Add branch counter knob 2023-11-09 13:47:50 -03:00
session.c perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
session.h perf tools: Make it possible to see perf's kernel and module memory mappings 2024-02-08 15:49:39 -08:00
setns.c
setup.py perf evsel: Rename get_states() to parse_task_states() and make it public 2024-02-01 22:10:27 -08: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
smt.h
sort.c perf report: Prevent segfault with --no-parent 2024-02-01 22:15:31 -08:00
sort.h perf report: Add 'symoff' sort key 2023-12-23 22:39:42 -03:00
spark.c
spark.h
srccode.c
srccode.h
srcline.c perf srcline: Add missed addr2line closes 2024-02-09 20:43:13 -08:00
srcline.h perf srcline: Add a timeout to reading from addr2line 2023-06-14 18:19:06 -03:00
stat-display.c perf stat: Fix metric-only aggregation index 2024-02-22 08:57:29 -08:00
stat-shadow.c perf metrics: Compute unmerged uncore metrics individually 2024-02-22 08:57:09 -08:00
stat.c perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_empty 2024-03-21 10:41:28 -03:00
stat.h perf stat: Support per-cluster aggregation 2024-02-09 14:59:53 -08:00
strbuf.c
strbuf.h
stream.c
stream.h
strfilter.c
strfilter.h
string.c perf util: Add a function for replacing characters in a string 2023-09-12 17:32:00 -03:00
string2.h perf util: Add a function for replacing characters in a string 2023-09-12 17:32:00 -03:00
strlist.c
strlist.h
svghelper.c perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
svghelper.h
symbol-elf.c perf maps: Get map before returning in maps__find_by_name 2024-02-12 12:35:33 -08:00
symbol-minimal.c perf symbols: Parse NOTE segments until the build id is found 2023-12-06 09:46:15 -03:00
symbol.c perf tools: Fixup module symbol end address properly 2024-02-16 16:07:28 -08:00
symbol.h perf maps: Move symbol maps functions to maps.c 2023-12-06 13:01:46 -03:00
symbol_conf.h perf annotate: Add --data-type option 2023-12-23 22:39:43 -03:00
symbol_fprintf.c perf symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
symsrc.h
synthetic-events.c perf tools: Fix calloc() arguments to address error introduced in gcc-14 2024-01-26 12:56:01 -03:00
synthetic-events.h
syscalltbl.c
syscalltbl.h
target.c
target.h
term.c
term.h
thread-stack.c x86/retpoline,kprobes: Skip optprobe check for indirect jumps with retpolines and IBT 2023-08-14 11:46:51 +02:00
thread-stack.h
thread.c perf machine: Move machine's threads into its own abstraction 2024-03-03 22:51:44 -08:00
thread.h perf machine: Move machine's threads into its own abstraction 2024-03-03 22:51:44 -08:00
thread_map.c perf thread_map: Skip exited threads when scanning /proc 2024-02-22 09:11:03 -08:00
thread_map.h
threads.c perf threads: Switch from rbtree to hashmap 2024-03-03 22:52:04 -08:00
threads.h perf threads: Reduce table size from 256 to 8 2024-03-03 22:52:13 -08:00
time-utils.c
time-utils.h
tool.h
top.c perf top: Avoid repeated function calls to perf_cpu_map__nr(). 2023-12-18 21:34:39 -03:00
top.h perf top: Convert to the global annotation_options 2023-12-07 16:47:55 -03:00
topdown.c
topdown.h
trace-event-info.c perf trace-event-info: Avoid passing NULL value to closedir 2023-10-12 10:01:57 -07:00
trace-event-parse.c perf evsel: Rename get_states() to parse_task_states() and make it public 2024-02-01 22:10:27 -08:00
trace-event-read.c
trace-event-scripting.c
trace-event.c
trace-event.h perf evsel: Rename get_states() to parse_task_states() and make it public 2024-02-01 22:10:27 -08:00
tracepoint.c
tracepoint.h
trigger.h
tsc.c
tsc.h
units.c
units.h
unwind-libdw.c perf maps: Hide maps internals 2024-02-12 12:35:41 -08:00
unwind-libdw.h
unwind-libunwind-local.c perf maps: Hide maps internals 2024-02-12 12:35:41 -08:00
unwind-libunwind.c perf maps: Hide maps internals 2024-02-12 12:35:41 -08:00
unwind.h perf unwind: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -03:00
usage.c
util.c perf list: Add scandirat compatibility function 2024-02-22 09:11:41 -08:00
util.h perf list: Add scandirat compatibility function 2024-02-22 09:11:41 -08:00
values.c
values.h
vdso.c perf vdso: Use function to add missing maps lock 2023-12-20 14:49:11 -03:00
vdso.h
zlib.c
zstd.c perf mmap: Lazily initialize zstd streams to save memory when not using it 2023-11-28 14:25:06 -03:00