[PATCH 0/3] perfcounter: callchain symbol resolving and fixes

Frederic Weisbecker
2009-07-01T03:35:28Z

Hi,

This patchset provides the symbol resolving for callchains.
Example:

perf report -s sym -c

5.40% [k] __d_lookup
3.60%
__d_lookup
perf_callchain
perf_counter_overflow
intel_pmu_handle_irq
perf_counter_nmi_handler
notifier_call_chain
atomic_notifier_call_chain
notify_die
do_nmi
nmi
do_lookup
__link_path_walk
path_walk
do_path_lookup
user_path_at
vfs_fstatat
vfs_lstat
sys_newlstat
system_call_fastpath
__lxstat
0x406fb1

1.26%
__d_lookup
perf_callchain
perf_counter_overflow
intel_pmu_handle_irq
perf_counter_nmi_handler
notifier_call_chain
atomic_notifier_call_chain
notify_die
do_nmi
nmi
do_lookup
__link_path_walk
path_walk
do_path_lookup
user_path_at
vfs_fstatat
vfs_lstat
sys_newlstat
system_call_fastpath
__lxstat
[...]

Sorry about the third patch, it's a kind of all-in-one monolithic thing which
gathers various fixes. I should have granulate it...

Still in my plans:

- profit we have a tree to display a better graph hierarchy
- let the user provide a limit for hit percentage, depth, number of
backtraces, etc...
- better output
- colors

And another one:

- remove the perfcounter internal nmi call frame (ie: every nmi frame)
so that we drop this header from each callchain:

perf_callchain
perf_counter_overflow
intel_pmu_handle_irq
perf_counter_nmi_handler
notifier_call_chain
atomic_notifier_call_chain
notify_die
do_nmi
nmi

Frederic.

Frederic Weisbecker (3):
perfcounter: Fix storage size allocation of callchain list
perfcounter: Resolve symbols in callchains
perfcounter: Various fixes for callchains

tools/perf/builtin-report.c | 102 ++++++++++++++++++++++-----------
tools/perf/util/callchain.c | 131 ++++++++++++++++++++++++++++++++-----------
tools/perf/util/callchain.h | 5 +-
3 files changed, 168 insertions(+), 70 deletions(-)