perf: arm64: Record the user-mode PC in the call chain.
Subsystems (3)
PATCH 1/1 perf: arm64: Record the user-mode PC in the call chain.
With this change, we no longer lose the innermost entry in the user-mode part of the call chain. See also the x86 port, which includes the ip, and the corresponding change in arch/arm.
--- arch/arm64/kernel/perf_event.c | 1 + 1 file changed, 1 insertion(+)
arch/arm64/kernel/perf_event.c +1 -0
@@ -1336,6 +1336,7 @@ void perf_callchain_user(struct perf_callchain_entry *entry,return ; } +perf_callchain_store (entry, regs->pc); tail = (struct frame_tail __user *)regs->regs[29 ]; while (entry->nr < PERF_MAX_STACK_DEPTH &&
Signature · 1 line
1.7.10.4
Quoted 14 lines · Jed Davis
With this change, we no longer lose the innermost entry in the user-mode part of the call chain. See also the x86 port, which includes the ip, and the corresponding change in
arch/arm.Signed-off-by Jed Davis <[email protected]>--- arch/arm64/kernel/perf_event.c | 1 + 1 file changed, 1 insertion(+)arch/arm64/kernel/perf_event.c +0
-0
arch/arm64/kernel/perf_event.c void perf_callchain_user(struct perf_callchain_entry *entry, · line 1342
Quoted 7 lines
arch/arm64/kernel/perf_event.c +1
-0@@ -1336,6 +1336,7 @@ void perf_callchain_user(struct perf_callchain_entry *entry,return ; } +perf_callchain_store (entry, regs->pc); tail = (struct frame_tail __user *)regs->regs[29 ]; while (entry->nr < PERF_MAX_STACK_DEPTH &&
I suspect this goes to v3.10 via the ARM64 tree?
Thanks,
Ingo
Will Deacon
Acked-byQuoted 20 lines · Ingo Molnar
Quoted 17 lines · Jed Davis
With this change, we no longer lose the innermost entry in the user-mode part of the call chain. See also the x86 port, which includes the ip, and the corresponding change in
arch/arm.Signed-off-by Jed Davis <[email protected]>--- arch/arm64/kernel/perf_event.c | 1 + 1 file changed, 1 insertion(+)arch/arm64/kernel/perf_event.c +0
-0@@ -1336,6 +1336,7 @@ void perf_callchain_user(struct perf_callchain_entry *entry,return ; }
Quoted 8 lines
arch/arm64/kernel/perf_event.c void perf_callchain_user(struct perf_callchain_entry *entry, · line 1342
Quoted 4 lines
arch/arm64/kernel/perf_event.c +1
-0+perf_callchain_store (entry, regs->pc); tail = (struct frame_tail __user *)regs->regs[29 ]; while (entry->nr < PERF_MAX_STACK_DEPTH &&Acked-by Ingo Molnar <[email protected]>I suspect this goes to v3.10 via the ARM64 tree?
Yup, we'll take this via the arm64 tree, thanks.
Catalin, you can add:
to this.
Cheers,
Will