tracing: Allow arch-specific stack tracer
A stack frame may be used in a different way depending on cpu architecture. Thus it is not always appropriate to slurp the stack contents, as current check_stack() does, in order to calcurate a stack index (height) at a given function call. At least not on arm64. In addition, there is a possibility that we will mistakenly detect a stale stack frame which has not been overwritten. This patch makes check_stack() a weak function so as to later implement arch-specific version. Link: http://lkml.kernel.org/r/1446182741-31019-5-git-send-email-takahiro.akashi@linaro.org Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt
parent
2ee8a74f2a
commit
bb99d8ccec
@@ -263,7 +263,18 @@ static inline void ftrace_kill(void) { }
|
||||
#endif /* CONFIG_FUNCTION_TRACER */
|
||||
|
||||
#ifdef CONFIG_STACK_TRACER
|
||||
|
||||
#define STACK_TRACE_ENTRIES 500
|
||||
|
||||
struct stack_trace;
|
||||
|
||||
extern unsigned stack_trace_index[];
|
||||
extern struct stack_trace stack_trace_max;
|
||||
extern unsigned long stack_trace_max_size;
|
||||
extern arch_spinlock_t max_stack_lock;
|
||||
|
||||
extern int stack_tracer_enabled;
|
||||
void stack_trace_print(void);
|
||||
int
|
||||
stack_trace_sysctl(struct ctl_table *table, int write,
|
||||
void __user *buffer, size_t *lenp,
|
||||
|
||||
Reference in New Issue
Block a user