aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r--kernel/trace/trace.h42
1 files changed, 28 insertions, 14 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 3abd645e8af2..f96f4e787ff3 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -25,9 +25,11 @@ enum trace_type {
25 TRACE_BRANCH, 25 TRACE_BRANCH,
26 TRACE_BOOT_CALL, 26 TRACE_BOOT_CALL,
27 TRACE_BOOT_RET, 27 TRACE_BOOT_RET,
28 TRACE_FN_RET, 28 TRACE_GRAPH_RET,
29 TRACE_GRAPH_ENT,
29 TRACE_USER_STACK, 30 TRACE_USER_STACK,
30 TRACE_BTS, 31 TRACE_BTS,
32 TRACE_POWER,
31 33
32 __TRACE_LAST_TYPE 34 __TRACE_LAST_TYPE
33}; 35};
@@ -56,14 +58,16 @@ struct ftrace_entry {
56 unsigned long parent_ip; 58 unsigned long parent_ip;
57}; 59};
58 60
61/* Function call entry */
62struct ftrace_graph_ent_entry {
63 struct trace_entry ent;
64 struct ftrace_graph_ent graph_ent;
65};
66
59/* Function return entry */ 67/* Function return entry */
60struct ftrace_ret_entry { 68struct ftrace_graph_ret_entry {
61 struct trace_entry ent; 69 struct trace_entry ent;
62 unsigned long ip; 70 struct ftrace_graph_ret ret;
63 unsigned long parent_ip;
64 unsigned long long calltime;
65 unsigned long long rettime;
66 unsigned long overrun;
67}; 71};
68extern struct tracer boot_tracer; 72extern struct tracer boot_tracer;
69 73
@@ -160,6 +164,11 @@ struct bts_entry {
160 unsigned long to; 164 unsigned long to;
161}; 165};
162 166
167struct trace_power {
168 struct trace_entry ent;
169 struct power_trace state_data;
170};
171
163/* 172/*
164 * trace_flag_type is an enumeration that holds different 173 * trace_flag_type is an enumeration that holds different
165 * states when a trace occurs. These are: 174 * states when a trace occurs. These are:
@@ -264,8 +273,12 @@ extern void __ftrace_bad_type(void);
264 IF_ASSIGN(var, ent, struct trace_boot_call, TRACE_BOOT_CALL);\ 273 IF_ASSIGN(var, ent, struct trace_boot_call, TRACE_BOOT_CALL);\
265 IF_ASSIGN(var, ent, struct trace_boot_ret, TRACE_BOOT_RET);\ 274 IF_ASSIGN(var, ent, struct trace_boot_ret, TRACE_BOOT_RET);\
266 IF_ASSIGN(var, ent, struct trace_branch, TRACE_BRANCH); \ 275 IF_ASSIGN(var, ent, struct trace_branch, TRACE_BRANCH); \
267 IF_ASSIGN(var, ent, struct ftrace_ret_entry, TRACE_FN_RET);\ 276 IF_ASSIGN(var, ent, struct ftrace_graph_ent_entry, \
277 TRACE_GRAPH_ENT); \
278 IF_ASSIGN(var, ent, struct ftrace_graph_ret_entry, \
279 TRACE_GRAPH_RET); \
268 IF_ASSIGN(var, ent, struct bts_entry, TRACE_BTS);\ 280 IF_ASSIGN(var, ent, struct bts_entry, TRACE_BTS);\
281 IF_ASSIGN(var, ent, struct trace_power, TRACE_POWER); \
269 __ftrace_bad_type(); \ 282 __ftrace_bad_type(); \
270 } while (0) 283 } while (0)
271 284
@@ -397,9 +410,9 @@ void trace_function(struct trace_array *tr,
397 unsigned long ip, 410 unsigned long ip,
398 unsigned long parent_ip, 411 unsigned long parent_ip,
399 unsigned long flags, int pc); 412 unsigned long flags, int pc);
400void
401trace_function_return(struct ftrace_retfunc *trace);
402 413
414void trace_graph_return(struct ftrace_graph_ret *trace);
415void trace_graph_entry(struct ftrace_graph_ent *trace);
403void trace_bts(struct trace_array *tr, 416void trace_bts(struct trace_array *tr,
404 unsigned long from, 417 unsigned long from,
405 unsigned long to); 418 unsigned long to);
@@ -444,6 +457,7 @@ struct tracer_switch_ops {
444 struct tracer_switch_ops *next; 457 struct tracer_switch_ops *next;
445}; 458};
446 459
460char *trace_find_cmdline(int pid);
447#endif /* CONFIG_CONTEXT_SWITCH_TRACER */ 461#endif /* CONFIG_CONTEXT_SWITCH_TRACER */
448 462
449#ifdef CONFIG_DYNAMIC_FTRACE 463#ifdef CONFIG_DYNAMIC_FTRACE
@@ -489,11 +503,11 @@ extern int trace_vprintk(unsigned long ip, const char *fmt, va_list args);
489extern unsigned long trace_flags; 503extern unsigned long trace_flags;
490 504
491/* Standard output formatting function used for function return traces */ 505/* Standard output formatting function used for function return traces */
492#ifdef CONFIG_FUNCTION_RET_TRACER 506#ifdef CONFIG_FUNCTION_GRAPH_TRACER
493extern enum print_line_t print_return_function(struct trace_iterator *iter); 507extern enum print_line_t print_graph_function(struct trace_iterator *iter);
494#else 508#else
495static inline enum print_line_t 509static inline enum print_line_t
496print_return_function(struct trace_iterator *iter) 510print_graph_function(struct trace_iterator *iter)
497{ 511{
498 return TRACE_TYPE_UNHANDLED; 512 return TRACE_TYPE_UNHANDLED;
499} 513}