diff options
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r-- | include/linux/ftrace.h | 21 |
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) { } | |||
87 | static inline void ftrace_start(void) { } | 87 | static inline void ftrace_start(void) { } |
88 | #endif /* CONFIG_FUNCTION_TRACER */ | 88 | #endif /* CONFIG_FUNCTION_TRACER */ |
89 | 89 | ||
90 | #ifdef CONFIG_STACK_TRACER | ||
91 | extern int stack_tracer_enabled; | ||
92 | int | ||
93 | stack_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); | |||
295 | static inline void | 303 | static inline void |
296 | ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { } | 304 | ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { } |
297 | static inline int | 305 | static inline int |
298 | ftrace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 0))); | 306 | ftrace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); |
299 | 307 | ||
300 | static inline void tracing_start(void) { } | 308 | static inline void tracing_start(void) { } |
301 | static inline void tracing_stop(void) { } | 309 | static 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 */ | ||
396 | extern char __irqentry_text_start[]; | ||
397 | extern 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 | ||
419 | static inline void ftrace_graph_init_task(struct task_struct *t) { } | 438 | static inline void ftrace_graph_init_task(struct task_struct *t) { } |
420 | static inline void ftrace_graph_exit_task(struct task_struct *t) { } | 439 | static inline void ftrace_graph_exit_task(struct task_struct *t) { } |