e6ffe17ec4
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>
26 lines
445 B
C
26 lines
445 B
C
/**
|
|
* @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)
|
|
{
|
|
}
|