2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-28 15:13:55 +08:00
linux-next/tools/perf/util
Milian Wolff 11ea2515f3 perf callchain: Create real callchain entries for inlined frames
The inline_node structs are maintained by the new dso->inlines tree.
This in turn keeps ownership of the fake symbols and srcline string
representing an inline frame.

This tree is sorted by address to allow quick lookups. All other entries
of the symbol beside the function name are unused for inline frames. The
advantage of this approach is that all existing users of the callchain
API can now transparently display inlined frames without having to patch
their code.

Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Yao Jin <yao.jin@linux.intel.com>
Link: http://lkml.kernel.org/r/20171009203310.17362-6-milian.wolff@kdab.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2017-10-24 09:59:55 -03:00
..
c++ perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
include perf probe: Support probing on offline cross-arch binary 2016-09-01 12:41:09 -03:00
intel-pt-decoder perf tools: Robustify detection of clang binary 2017-08-28 16:44:46 -03:00
libunwind perf unwind: Fix wrongly used regs for aarch64 unwind 2016-06-23 10:30:31 -03:00
scripting-engines perf script python: Generate hooks with additional argument 2017-07-25 22:43:21 -03:00
annotate.c perf annotate: Remove arch::cpuid_parse callback 2017-10-23 11:20:54 -03:00
annotate.h perf annotate: Store the sample period in each histogram bucket 2017-07-21 12:02:38 -03:00
auxtrace.c perf auxtrace: Add CPU filter support 2017-06-30 11:50:55 -03:00
auxtrace.h perf auxtrace: Add CPU filter support 2017-06-30 11:50:55 -03:00
block-range.c perf annotate: Add branch stack / basic block 2016-09-08 13:44:03 -03:00
block-range.h perf annotate: Add branch stack / basic block 2016-09-08 13:44:03 -03:00
bpf-loader.c tools include: Adopt strstarts() from the kernel 2017-07-20 15:46:10 -03:00
bpf-loader.h perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
bpf-prologue.c perf bpf: Fix endianness problem when loading parameters in prologue 2017-08-16 10:31:11 -03:00
bpf-prologue.h perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
branch.c perf util: Create branch.c/.h for common branch functions 2017-07-18 23:14:40 -03:00
branch.h perf report: Tag branch type/flag on "to" and tag cycles on "from" 2017-07-25 22:46:35 -03:00
Build perf mmap: Move perf_mmap and methods to separate mmap.[ch] files 2017-10-23 11:20:53 -03:00
build-id.c perf header: Add struct feat_fd for write 2017-07-18 23:14:31 -03:00
build-id.h perf header: Add struct feat_fd for write 2017-07-18 23:14:31 -03:00
cache.h tools: Adopt __printf from kernel sources 2017-06-19 15:25:26 -03:00
call-path.c perf tools: Refactor code to move call path handling out of thread-stack 2016-05-06 13:00:43 -03:00
call-path.h perf tools: Refactor code to move call path handling out of thread-stack 2016-05-06 13:00:43 -03:00
callchain.c perf callchain: Store srcline in callchain_cursor_node 2017-10-24 09:59:55 -03:00
callchain.h perf callchain: Store srcline in callchain_cursor_node 2017-10-24 09:59:55 -03:00
cgroup.c perf cgroup: Fix refcount usage 2017-07-25 11:23:50 -03:00
cgroup.h perf cgroup: Convert cgroup_sel.refcnt from atomic_t to refcount_t 2017-03-03 19:07:14 -03:00
cloexec.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
cloexec.h tools build: Add test for sched_getcpu() 2017-03-03 19:07:19 -03:00
color.c perf tools: Uninline scnprintf() and vscnprint() 2016-07-12 15:20:24 -03:00
color.h perf tools: Remove string.h, unistd.h and sys/stat.h from util.h 2017-04-24 13:43:33 -03:00
comm.c perf tools: Lock to protect comm_str rb tree 2017-10-03 09:27:36 -03:00
comm.h
compress.h perf tools: Add compress.h for the *_decompress_to_file() headers 2017-04-24 12:33:33 -03:00
config.c perf config: Allow creating empty config set for config file autogeneration 2017-09-13 09:49:16 -03:00
config.h perf config: Do not die when parsing u64 or int config values 2017-06-27 11:44:58 -03:00
counts.c perf tools: Move path related functions to util/path.h 2017-04-19 13:01:53 -03:00
counts.h perf stat: Use group read for event groups 2017-07-26 14:25:44 -03:00
cpumap.c perf tools: Remove include dirent.h from util.h 2017-04-19 13:01:55 -03:00
cpumap.h perf cpumap: Introduce cpu_map__snprint_mask() 2017-03-03 19:07:17 -03:00
cs-etm.h perf tools: Add coresight etm PMU record capabilities 2016-09-22 12:19:40 -03:00
ctype.c perf tools: Move sane ctype stuff from util.h to sane_ctype.h 2017-04-19 13:01:48 -03:00
data-convert-bt.c perf data: Add mmap[2] events to CTF conversion 2017-07-28 16:26:06 -03:00
data-convert-bt.h perf data ctf: Pass convert options through opts structure 2016-06-28 10:54:55 -03:00
data-convert.h perf data ctf: Add 'all' option 2016-06-28 10:54:56 -03:00
data.c perf tools: Make copyfile_offset() static 2017-09-13 09:49:16 -03:00
data.h
db-export.c perf thread: Adopt get_main_thread from db-export.c 2016-05-30 12:41:43 -03:00
db-export.h perf script: Add call path id to exported sample in db export 2016-05-06 13:00:53 -03:00
debug.c perf tools: Introduce binary__fprintf() 2017-10-23 16:30:52 -03:00
debug.h tools: Adopt __printf from kernel sources 2017-06-19 15:25:26 -03:00
demangle-java.c perf tools: Move sane ctype stuff from util.h to sane_ctype.h 2017-04-19 13:01:48 -03:00
demangle-java.h
demangle-rust.c perf symbols: Add Rust demangling 2016-07-12 16:12:38 -03:00
demangle-rust.h perf symbols: Add Rust demangling 2016-07-12 16:12:38 -03:00
drv_configs.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
drv_configs.h perf pmu: Push configuration down to PMU driver 2016-09-22 12:19:41 -03:00
dso.c perf callchain: Create real callchain entries for inlined frames 2017-10-24 09:59:55 -03:00
dso.h perf callchain: Create real callchain entries for inlined frames 2017-10-24 09:59:55 -03:00
dump-insn.c perf script: Add 'brstackinsn' for branch stacks 2017-03-16 09:24:35 -03:00
dump-insn.h perf script: Add 'brstackinsn' for branch stacks 2017-03-16 09:24:35 -03:00
dwarf-aux.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
dwarf-aux.h perf probe: Match linkage name with mangled name 2016-09-29 11:17:08 -03:00
dwarf-regs.c perf tools: Add include <linux/kernel.h> where ARRAY_SIZE() is used 2017-04-19 13:01:44 -03:00
env.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
env.h perf header: Transform nodes string info to struct 2016-07-04 19:39:01 -03:00
event.c perf top: Add option to set the number of thread for event synthesize 2017-10-03 09:27:54 -03:00
event.h perf top: Implement multithreading for perf_event__synthesize_threads 2017-10-03 09:27:46 -03:00
evlist.c perf mmap: Move perf_mmap and methods to separate mmap.[ch] files 2017-10-23 11:20:53 -03:00
evlist.h perf mmap: Move perf_mmap and methods to separate mmap.[ch] files 2017-10-23 11:20:53 -03:00
evsel_fprintf.c perf report: Remove code to handle inline frames from browsers 2017-10-24 09:59:55 -03:00
evsel.c Merge remote-tracking branch 'tip/perf/urgent' into perf/core, to pick up fixes 2017-10-02 13:58:12 -03:00
evsel.h perf tools: Support weak groups in 'perf stat' 2017-09-13 09:49:12 -03:00
expr.h perf tools: Increase maximum number of events in expressions 2017-08-22 12:19:05 -03:00
expr.y perf tools: Dedup events in expression parsing 2017-08-22 12:19:08 -03:00
find-vdso-map.c
genelf_debug.c tools: Adopt __packed from kernel sources 2017-06-19 15:27:07 -03:00
genelf.c perf jit: Generate .eh_frame/.eh_frame_hdr in DSO 2016-10-24 11:07:40 -03:00
genelf.h perf jit: Generate .eh_frame/.eh_frame_hdr in DSO 2016-10-24 11:07:40 -03:00
generate-cmdlist.sh
group.h perf stat: Basic support for TopDown in perf stat 2016-06-06 17:04:15 -03:00
header.c perf tools: Use default CPUINFO_PROC where it fits 2017-08-17 16:58:21 -03:00
header.h perf tools: Add feature header record to pipe-mode 2017-07-18 23:14:36 -03:00
help-unknown-cmd.c perf config: Do not die when parsing u64 or int config values 2017-06-27 11:44:58 -03:00
help-unknown-cmd.h
hist.c perf report: Remove code to handle inline frames from browsers 2017-10-24 09:59:55 -03:00
hist.h perf sort: Add sort option for physical address 2017-09-01 14:46:11 -03:00
intel-bts.c perf intel-pt/bts: Remove unused SAMPLE_SIZE defines and bts priv array 2017-06-19 15:27:09 -03:00
intel-bts.h
intel-pt.c perf intel-pt: Synthesize new power and "ptwrite" events 2017-06-30 11:48:28 -03:00
intel-pt.h perf intel-pt: Record address filter in AUXTRACE_INFO event 2016-09-29 11:17:05 -03:00
intlist.c
intlist.h perf intlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:39:19 -03:00
jit.h
jitdump.c perf str{filter,list}: Disentangle headers 2017-04-19 13:01:52 -03:00
jitdump.h perf jit: Add unwinding support 2016-10-24 11:07:39 -03:00
kvm-stat.h
levenshtein.c perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
levenshtein.h
llvm-utils.c tools include: Adopt strstarts() from the kernel 2017-07-20 15:46:10 -03:00
llvm-utils.h perf llvm: Extract helpers in llvm-utils.c 2016-12-05 15:51:42 -03:00
lzma.c perf tools: Add compress.h for the *_decompress_to_file() headers 2017-04-24 12:33:33 -03:00
machine.c perf callchain: Create real callchain entries for inlined frames 2017-10-24 09:59:55 -03:00
machine.h perf top: Implement multithreading for perf_event__synthesize_threads 2017-10-03 09:27:46 -03:00
map.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
map.h perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
mem-events.c perf c2c: Fix remote HITM detection for Skylake 2017-08-28 11:05:10 -03:00
mem-events.h perf c2c report: Add struct c2c_stats::tot_hitm field 2016-11-23 10:44:05 -03:00
memswap.c perf memswap: Split the byteswap memory range wrappers from util.[ch] 2017-04-25 15:45:35 -03:00
memswap.h perf memswap: Split the byteswap memory range wrappers from util.[ch] 2017-04-25 15:45:35 -03:00
metricgroup.c perf stat: Fix adding multiple event groups 2017-09-21 13:12:58 -03:00
metricgroup.h perf stat: Support JSON metrics in perf stat 2017-09-13 09:49:13 -03:00
mmap.c perf mmap: Adopt push method from builtin-record.c 2017-10-23 11:20:54 -03:00
mmap.h perf mmap: Adopt push method from builtin-record.c 2017-10-23 11:20:54 -03:00
namespaces.c perf tools: Make copyfile_offset() static 2017-09-13 09:49:16 -03:00
namespaces.h perf namespaces: Add more appropriate set of headers 2017-10-23 16:30:54 -03:00
ordered-events.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
ordered-events.h
parse-branch-options.c perf record: Create a new option save_type in --branch-filter 2017-07-18 23:14:39 -03:00
parse-branch-options.h perf tools: Implement branch_type event parameter 2016-10-24 11:07:35 -03:00
parse-events.c Merge branch 'perf/urgent' into perf/core, to pick up fixes 2017-10-20 11:02:05 +02:00
parse-events.h perf pmu: Improve error messages for missing PMUs 2017-09-18 09:40:20 -03:00
parse-events.l Merge branch 'perf/urgent' into perf/core, to pick up fixes 2017-10-20 11:02:05 +02:00
parse-events.y perf events parse: Rename parse_events_parse arguments 2017-08-17 16:39:15 -03:00
parse-regs-options.c
parse-regs-options.h
path.c perf tools: Move path related functions to util/path.h 2017-04-19 13:01:53 -03:00
path.h perf tools: Move path related functions to util/path.h 2017-04-19 13:01:53 -03:00
perf_regs.c perf/sdt/x86: Move OP parser to tools/perf/arch/x86/ 2017-03-28 12:25:30 -03:00
perf_regs.h perf/sdt/x86: Move OP parser to tools/perf/arch/x86/ 2017-03-28 12:25:30 -03:00
perf-hooks-list.h perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
perf-hooks.c perf tools: Add include <linux/kernel.h> where ARRAY_SIZE() is used 2017-04-19 13:01:44 -03:00
perf-hooks.h perf tools: Pass context to perf hook functions 2016-12-05 15:51:42 -03:00
PERF-VERSION-GEN
pmu.c Merge branch 'perf/urgent' into perf/core, to pick up fixes 2017-10-20 11:02:05 +02:00
pmu.h Merge branch 'perf/urgent' into perf/core, to pick up fixes 2017-10-20 11:02:05 +02:00
pmu.l
pmu.y
print_binary.c perf tools: Introduce binary__fprintf() 2017-10-23 16:30:52 -03:00
print_binary.h perf tools: Introduce binary__fprintf() 2017-10-23 16:30:52 -03:00
probe-event.c perf probe: Fix kprobe blacklist checking condition 2017-08-29 11:14:12 -03:00
probe-event.h perf probe: Allow placing uprobes in alternate namespaces. 2017-07-18 23:14:10 -03:00
probe-file.c perf tools: Make copyfile_offset() static 2017-09-13 09:49:16 -03:00
probe-file.h perf buildid-cache: Support binary objects from other namespaces 2017-07-18 23:14:11 -03:00
probe-finder.c perf str{filter,list}: Disentangle headers 2017-04-19 13:01:52 -03:00
probe-finder.h perf tools: Move sane ctype stuff from util.h to sane_ctype.h 2017-04-19 13:01:48 -03:00
pstack.c
pstack.h
python-ext-sources perf mmap: Move perf_mmap and methods to separate mmap.[ch] files 2017-10-23 11:20:53 -03:00
python.c perf callchain: Move callchain specific routines from util.[ch] 2017-04-24 13:43:26 -03:00
quote.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
quote.h perf quote: Disentangle headers 2016-07-12 15:19:55 -03:00
rb_resort.h perf machine: Use hashtable for machine threads 2017-09-18 09:40:19 -03:00
rblist.c
rblist.h
record.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
rwsem.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
rwsem.h perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
sane_ctype.h perf tools: Move sane ctype stuff from util.h to sane_ctype.h 2017-04-19 13:01:48 -03:00
session.c Merge branch 'perf/urgent' into perf/core, to pick up fixes 2017-10-20 11:02:05 +02:00
session.h perf tools: Use just forward declarations for struct thread where possible 2017-04-24 13:43:35 -03:00
setns.c tools build: Add test for setns() 2017-07-18 23:14:08 -03:00
setup.py perf python: Filter out -specs=/a/b/c from the python binding cc options 2017-02-17 10:31:13 -03:00
smt.c perf tools: Add utility function to detect SMT status 2017-08-22 12:09:04 -03:00
smt.h perf tools: Add utility function to detect SMT status 2017-08-22 12:09:04 -03:00
sort.c perf sort: Add sort option for physical address 2017-09-01 14:46:11 -03:00
sort.h perf report: Remove code to handle inline frames from browsers 2017-10-24 09:59:55 -03:00
srcline.c perf callchain: Create real callchain entries for inlined frames 2017-10-24 09:59:55 -03:00
srcline.h perf callchain: Create real callchain entries for inlined frames 2017-10-24 09:59:55 -03:00
stat-shadow.c perf stat: Support duration_time for metrics 2017-09-13 09:49:14 -03:00
stat.c perf evsel: Add read_counter() 2017-07-26 14:21:59 -03:00
stat.h perf stat: Support JSON metrics in perf stat 2017-09-13 09:49:13 -03:00
strbuf.c tools lib string: Adopt prefixcmp() from perf and subcmd 2017-04-26 15:49:21 -03:00
strbuf.h tools: Adopt __printf from kernel sources 2017-06-19 15:25:26 -03:00
strfilter.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
strfilter.h
string2.h perf tools: Move extra string util functions to util/string2.h 2017-04-19 13:01:51 -03:00
string.c perf tools: Move extra string util functions to util/string2.h 2017-04-19 13:01:51 -03:00
strlist.c perf tools: Remove string.h, unistd.h and sys/stat.h from util.h 2017-04-24 13:43:33 -03:00
strlist.h perf tools: Rename strlist_for_each() macros to for_each_entry() 2016-06-23 11:35:01 -03:00
svghelper.c perf timechart: Use NSEC_PER_U?SEC 2016-08-23 15:37:33 -03:00
svghelper.h
symbol_fprintf.c perf symbols: No need to check if sym->name is NULL 2017-02-13 17:22:34 -03:00
symbol-elf.c perf test: Fix vmlinux failure on s390x 2017-09-28 13:01:42 -03:00
symbol-minimal.c perf util: Take elf_name as const string in dso__demangle_sym 2017-08-11 16:06:31 -03:00
symbol.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
symbol.h perf callchain: Refactor inline_list to operate on symbols 2017-10-24 09:59:55 -03:00
syscalltbl.c perf tools: Fix syscalltbl build failure 2017-09-25 12:21:05 -03:00
syscalltbl.h perf syscalltbl: Support glob matching on syscall names 2017-09-01 14:45:48 -03:00
target.c perf target: str_error_r() always returns the buffer it receives 2016-07-29 11:54:35 -03:00
target.h
term.c perf tools: Don't include terminal handling headers in util.h 2017-04-19 13:01:53 -03:00
term.h
thread_map.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
thread_map.h perf thread_map: Convert thread_map.refcnt from atomic_t to refcount_t 2017-03-03 19:07:16 -03:00
thread-stack.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
thread-stack.h perf script: Add callindent option 2016-06-23 17:04:26 -03:00
thread.c perf tools: Lock to protect namespaces and comm list 2017-10-03 09:27:27 -03:00
thread.h perf tools: Lock to protect namespaces and comm list 2017-10-03 09:27:27 -03:00
time-utils.c perf tools: Move timestamp routines from util.h to time-utils.h 2017-04-20 13:22:44 -03:00
time-utils.h perf tools: Move timestamp routines from util.h to time-utils.h 2017-04-20 13:22:44 -03:00
tool.h perf tools: Add feature header record to pipe-mode 2017-07-18 23:14:36 -03:00
top.c
top.h perf top: Add option to set the number of thread for event synthesize 2017-10-03 09:27:54 -03:00
trace-event-info.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
trace-event-parse.c perf event-parse: Use pr_warning() 2017-06-27 11:08:14 -03:00
trace-event-read.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
trace-event-scripting.c perf scripting: Don't die if scripting can't be setup, disable it 2016-10-28 11:29:44 -02:00
trace-event.c perf tools: Introduce trace_event__tp_format_id() 2016-07-12 16:14:52 -03:00
trace-event.h perf util: Save pid-cmdline mapping into tracing header 2017-01-26 11:42:59 -03:00
trigger.h
tsc.c
tsc.h
units.c perf units: Move parse_tag_value() to units.[ch] 2017-04-26 15:40:31 -03:00
units.h perf units: Move parse_tag_value() to units.[ch] 2017-04-26 15:40:31 -03:00
unwind-libdw.c perf unwind: Report module before querying isactivation in dwfl unwind 2017-06-16 14:37:30 -03:00
unwind-libdw.h perf tools: Use just forward declarations for struct thread where possible 2017-04-24 13:43:35 -03:00
unwind-libunwind-local.c perf report: Fix off-by-one for non-activation frames 2017-05-24 08:41:48 +02:00
unwind-libunwind.c perf unwind: Do not fail due to missing unwind support 2017-07-04 11:43:58 -03:00
unwind.h perf unwind: Provide only forward declarations for pointer types 2017-04-20 13:22:43 -03:00
usage.c perf tools: Kill die() 2017-06-27 11:49:13 -03:00
util-cxx.h perf clang: Update test case to use real BPF script 2016-12-05 15:51:44 -03:00
util.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
util.h perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
values.c perf report: Group stat values on global event id 2017-08-28 16:44:44 -03:00
values.h perf tools: Use normal error reporting when processing PERF_RECORD_READ events 2016-10-24 11:07:44 -03:00
vdso.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
vdso.h
xyarray.c perf xyarray: Save max_x, max_y 2017-08-22 11:51:28 -03:00
xyarray.h perf xyarray: Fix wrong processing when closing evsel fd 2017-10-18 09:09:36 -03:00
zlib.c perf tools: Make copyfile_offset() static 2017-09-13 09:49:16 -03:00