OSDN Git Service

ARC: perf: add user space attribution in callchains
authorVineet Gupta <vgupta@synopsys.com>
Fri, 12 Jul 2013 13:55:54 +0000 (15:55 +0200)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 20 Apr 2015 12:57:35 +0000 (18:27 +0530)
The actual user space unwinding is more involved, so simply capture the
user space PC

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/kernel/perf_event.c

index a6ad1e0..109118a 100644 (file)
@@ -54,6 +54,16 @@ perf_callchain_kernel(struct perf_callchain_entry *entry, struct pt_regs *regs)
        arc_unwind_core(NULL, regs, callchain_trace, &ctrl);
 }
 
+void
+perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
+{
+       /*
+        * User stack can't be unwound trivially with kernel dwarf unwinder
+        * So for now just record the user PC
+        */
+       perf_callchain_store(entry, instruction_pointer(regs));
+}
+
 static struct arc_pmu *arc_pmu;
 
 /* read counter #idx; note that counter# != event# on ARC! */