aboutsummaryrefslogtreecommitdiff
path: root/arch/xtensa/oprofile/init.c
diff options
context:
space:
mode:
authordann2008-05-21 17:43:50 -0700
committerChris Zankel2013-02-23 19:22:54 -0800
commite6ffe17ec45dd763ee8278246a112562f64a4ef2 (patch)
tree3efe66a318764e0aeab4385eb407ec597f1f9f9b /arch/xtensa/oprofile/init.c
parent2d6f82fee45a52359012948306587eba704cf35b (diff)
xtensa: add support for oprofile
Support call graph profiling. Keep upper two bits of PC unchanged through backtrace rather than take them from sp (a1). The stack pointer is usually in the same GB (same upper 2 bits) as PC, but technically doesn't always have to be (and might not in the future, when taking full advantage of MMU v3). Signed-off-by: Dan Nicolaescu <dann@xtensa-linux.org> Signed-off-by: Pete Delaney <piet@tensilica.com> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Chris Zankel <chris@zankel.net>
Diffstat (limited to 'arch/xtensa/oprofile/init.c')
-rw-r--r--arch/xtensa/oprofile/init.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/xtensa/oprofile/init.c b/arch/xtensa/oprofile/init.c
new file mode 100644
index 000000000000..a67eea379766
--- /dev/null
+++ b/arch/xtensa/oprofile/init.c
@@ -0,0 +1,26 @@
+/**
+ * @file init.c
+ *
+ * @remark Copyright 2008 Tensilica Inc.
+ * @remark Read the file COPYING
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/oprofile.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+
+
+extern void xtensa_backtrace(struct pt_regs *const regs, unsigned int depth);
+
+int __init oprofile_arch_init(struct oprofile_operations *ops)
+{
+ ops->backtrace = xtensa_backtrace;
+ return -ENODEV;
+}
+
+
+void oprofile_arch_exit(void)
+{
+}