Переглянути джерело

ARC: perf: add user space attribution in callchains

The actual user space unwinding is more involved, so simply capture the
user space PC

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Vineet Gupta 12 роки тому
батько
коміт
22f6b89912
1 змінених файлів з 10 додано та 0 видалено
  1. 10 0
      arch/arc/kernel/perf_event.c

+ 10 - 0
arch/arc/kernel/perf_event.c

@@ -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! */