aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ftrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r--include/linux/ftrace.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 985b28dc2ba9..677432b9cb7e 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -87,6 +87,14 @@ static inline void ftrace_stop(void) { }
87static inline void ftrace_start(void) { } 87static inline void ftrace_start(void) { }
88#endif /* CONFIG_FUNCTION_TRACER */ 88#endif /* CONFIG_FUNCTION_TRACER */
89 89
90#ifdef CONFIG_STACK_TRACER
91extern int stack_tracer_enabled;
92int
93stack_trace_sysctl(struct ctl_table *table, int write,
94 struct file *file, void __user *buffer, size_t *lenp,
95 loff_t *ppos);
96#endif
97
90#ifdef CONFIG_DYNAMIC_FTRACE 98#ifdef CONFIG_DYNAMIC_FTRACE
91/* asm/ftrace.h must be defined for archs supporting dynamic ftrace */ 99/* asm/ftrace.h must be defined for archs supporting dynamic ftrace */
92#include <asm/ftrace.h> 100#include <asm/ftrace.h>
@@ -295,7 +303,7 @@ extern void ftrace_dump(void);
295static inline void 303static inline void
296ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { } 304ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { }
297static inline int 305static inline int
298ftrace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 0))); 306ftrace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
299 307
300static inline void tracing_start(void) { } 308static inline void tracing_start(void) { }
301static inline void tracing_stop(void) { } 309static inline void tracing_stop(void) { }
@@ -378,6 +386,16 @@ struct ftrace_graph_ret {
378 */ 386 */
379#define __notrace_funcgraph notrace 387#define __notrace_funcgraph notrace
380 388
389/*
390 * We want to which function is an entrypoint of a hardirq.
391 * That will help us to put a signal on output.
392 */
393#define __irq_entry __attribute__((__section__(".irqentry.text")))
394
395/* Limits of hardirq entrypoints */
396extern char __irqentry_text_start[];
397extern char __irqentry_text_end[];
398
381#define FTRACE_RETFUNC_DEPTH 50 399#define FTRACE_RETFUNC_DEPTH 50
382#define FTRACE_RETSTACK_ALLOC_SIZE 32 400#define FTRACE_RETSTACK_ALLOC_SIZE 32
383/* Type of the callback handlers for tracing function graph*/ 401/* Type of the callback handlers for tracing function graph*/
@@ -415,6 +433,7 @@ static inline void unpause_graph_tracing(void)
415#else 433#else
416 434
417#define __notrace_funcgraph 435#define __notrace_funcgraph
436#define __irq_entry
418 437
419static inline void ftrace_graph_init_task(struct task_struct *t) { } 438static inline void ftrace_graph_init_task(struct task_struct *t) { }
420static inline void ftrace_graph_exit_task(struct task_struct *t) { } 439static inline void ftrace_graph_exit_task(struct task_struct *t) { }