caf4b323b0
Impact: add infrastructure for function-return tracing Add low level support for ftrace return tracing. This plug-in stores return addresses on the thread_info structure of the current task. The index of the current return address is initialized when the task is the first one (init) and when a process forks (the child). It is not needed when a task does a sys_execve because after this syscall, it still needs to return on the kernel functions it called. Note that the code of return_to_handler has been suggested by Steven Rostedt as almost all of the ideas of improvements in this V3. For purpose of security, arch/x86/kernel/process_32.c is not traced because __switch_to() changes the current task during its execution. That could cause inconsistency in the stored return address of this function even if I didn't have any crash after testing with tracing on this function enabled. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 lines
341 B
C
13 lines
341 B
C
#ifndef _LINUX_FTRACE_IRQ_H
|
|
#define _LINUX_FTRACE_IRQ_H
|
|
|
|
|
|
#if defined(CONFIG_DYNAMIC_FTRACE) || defined(CONFIG_FUNCTION_RET_TRACER)
|
|
extern void ftrace_nmi_enter(void);
|
|
extern void ftrace_nmi_exit(void);
|
|
#else
|
|
static inline void ftrace_nmi_enter(void) { }
|
|
static inline void ftrace_nmi_exit(void) { }
|
|
#endif
|
|
|
|
#endif /* _LINUX_FTRACE_IRQ_H */
|