perf tools: Support for DWARF CFI unwinding on post processing
authorJiri Olsa <jolsa@redhat.com>
Tue, 7 Aug 2012 13:20:46 +0000 (15:20 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Sat, 11 Aug 2012 18:06:56 +0000 (15:06 -0300)
commit71ad0f5e4e361c8bca864c7d09d14b64af6bc2fc
tree57d87f004c3d939d2c7be315b9e1011a9214a6a1
parent0f6a30150ca2e0cf4f893e7173d61434a3c02e0e
perf tools: Support for DWARF CFI unwinding on post processing

This brings the support for DWARF cfi unwinding on perf post
processing. Call frame informations are retrieved and then passed
to libunwind that requests memory and register content from the
applications.

Adding unwind object to handle the user stack backtrace based
on the user register values and user stack dump.

The unwind object access the libunwind via remote interface
and provides to it all the necessary data to unwind the stack.

The unwind interface provides following function:
unwind__get_entries

And callback (specified in above function) to retrieve
the backtrace entries:
typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry,
 void *arg);

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Original-patch-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Arun Sharma <asharma@fb.com>
Cc: Benjamin Redelings <benjamin.redelings@nescent.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Frank Ch. Eigler <fche@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Ulrich Drepper <drepper@gmail.com>
Link: http://lkml.kernel.org/r/1344345647-11536-12-git-send-email-jolsa@redhat.com
[ Replaced use of perf_session by usage of perf_evsel ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
13 files changed:
tools/perf/Makefile
tools/perf/arch/x86/Makefile
tools/perf/arch/x86/util/unwind.c [new file with mode: 0644]
tools/perf/builtin-report.c
tools/perf/builtin-script.c
tools/perf/builtin-top.c
tools/perf/util/include/linux/compiler.h
tools/perf/util/map.h
tools/perf/util/session.c
tools/perf/util/session.h
tools/perf/util/trace-event.h
tools/perf/util/unwind.c [new file with mode: 0644]
tools/perf/util/unwind.h [new file with mode: 0644]