diff options
author | Hou Pengyang <houpengyang@huawei.com> | 2015-05-08 06:43:03 +0100 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2017-05-25 18:19:34 +0530 |
commit | 61c92ff9f7a1d58744371be531ba398a43301bd0 (patch) | |
tree | 66c5baab51b075537635db3e6a8d4100a7e16886 /arch/arm/include/asm/swab.h | |
parent | 601e0069c24bdf0c1ae4e49021e3deee8ba2749f (diff) |
UPSTREAM: arm: perf: Fix callchain parse error with kernel tracepoint eventslsk-v3.18-17.05-android
For ARM, when tracing with tracepoint events, the IP and cpsr are set
to 0, preventing the perf code parsing the callchain and resolving the
symbols correctly.
./perf record -e sched:sched_switch -g --call-graph dwarf ls
[ perf record: Captured and wrote 0.006 MB perf.data ]
./perf report -f
Samples: 5 of event 'sched:sched_switch', Event count (approx.): 5
Children Self Command Shared Object Symbol
100.00% 100.00% ls [unknown] [.] 00000000
The fix is to implement perf_arch_fetch_caller_regs for ARM, which fills
several necessary registers used for callchain unwinding, including pc,sp,
fp and cpsr.
With this patch, callchain can be parsed correctly as :
.....
- 100.00% 100.00% ls [kernel.kallsyms] [k] __sched_text_start
+ __sched_text_start
+ 20.00% 0.00% ls libc-2.18.so [.] _dl_addr
+ 20.00% 0.00% ls libc-2.18.so [.] write
.....
Jean Pihet found this in ARM and come up with a patch:
http://thread.gmane.org/gmane.linux.kernel/1734283/focus=1734280
This patch rewrite Jean's patch in C.
Signed-off-by: Hou Pengyang <houpengyang@huawei.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
(cherry picked from commit b3eac0265bf6258f08dcd4ac7fa7f87cc050defc)
Bug: 29520177
Signed-off-by: Mohan Srinivasan <srmohan@google.com>
Change-Id: Ia87ea58982acdf3bcdfa43bdeed92539f46e8b0c
Diffstat (limited to 'arch/arm/include/asm/swab.h')
0 files changed, 0 insertions, 0 deletions