diff options
author | Paul Mackerras <[email protected]> | 2010-03-18 16:05:13 +1100 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2010-03-18 06:48:29 +0100 |
commit | 9eff26ea48bfbe2885b158742a7512a097ec911b (patch) | |
tree | a914f959b78bdf4ee9eca897a743d727c27faf4f /mm/sparse.c | |
parent | 00909e955125e90a6ebb34671c56c4c851e62951 (diff) |
powerpc/perf_events: Fix call-graph recording, add perf_arch_fetch_caller_regs
This implements a powerpc version of perf_arch_fetch_caller_regs
to get correct call-graphs.
It's implemented in assembly because that way we can be sure there isn't
a stack frame for perf_arch_fetch_caller_regs. If it was in C, gcc might
or might not create a stack frame for it, which would affect the number
of levels we have to skip.
With this, we see results from perf record -e lock:lock_acquire like
this:
# Samples: 24878
#
# Overhead Command Shared Object Symbol
# ........ .............. ................. ......
#
14.99% perf [kernel.kallsyms] [k] ._raw_spin_lock
|
--- ._raw_spin_lock
|
|--25.00%-- .alloc_fd
| (nil)
| |
| |--50.00%-- .anon_inode_getfd
| | .sys_perf_event_open
| | syscall_exit
| | syscall
| | create_counter
| | __cmd_record
| | run_builtin
| | main
| | 0xfd2e704
| | 0xfd2e8c0
| | (nil)
... etc.
Signed-off-by: Paul Mackerras <[email protected]>
Acked-by: Benjamin Herrenschmidt <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Peter Zijlstra <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
LKML-Reference: <20100318050513.GA6575@drongo>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'mm/sparse.c')
0 files changed, 0 insertions, 0 deletions