diff options
Diffstat (limited to 'kernel/trace/trace_functions_graph.c')
| -rw-r--r-- | kernel/trace/trace_functions_graph.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index deff11200261..4de3e57f723c 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c | |||
| @@ -38,15 +38,6 @@ struct fgraph_data { | |||
| 38 | 38 | ||
| 39 | #define TRACE_GRAPH_INDENT 2 | 39 | #define TRACE_GRAPH_INDENT 2 |
| 40 | 40 | ||
| 41 | /* Flag options */ | ||
| 42 | #define TRACE_GRAPH_PRINT_OVERRUN 0x1 | ||
| 43 | #define TRACE_GRAPH_PRINT_CPU 0x2 | ||
| 44 | #define TRACE_GRAPH_PRINT_OVERHEAD 0x4 | ||
| 45 | #define TRACE_GRAPH_PRINT_PROC 0x8 | ||
| 46 | #define TRACE_GRAPH_PRINT_DURATION 0x10 | ||
| 47 | #define TRACE_GRAPH_PRINT_ABS_TIME 0x20 | ||
| 48 | #define TRACE_GRAPH_PRINT_IRQS 0x40 | ||
| 49 | |||
| 50 | static unsigned int max_depth; | 41 | static unsigned int max_depth; |
| 51 | 42 | ||
| 52 | static struct tracer_opt trace_opts[] = { | 43 | static struct tracer_opt trace_opts[] = { |
| @@ -64,11 +55,13 @@ static struct tracer_opt trace_opts[] = { | |||
| 64 | { TRACER_OPT(funcgraph-abstime, TRACE_GRAPH_PRINT_ABS_TIME) }, | 55 | { TRACER_OPT(funcgraph-abstime, TRACE_GRAPH_PRINT_ABS_TIME) }, |
| 65 | /* Display interrupts */ | 56 | /* Display interrupts */ |
| 66 | { TRACER_OPT(funcgraph-irqs, TRACE_GRAPH_PRINT_IRQS) }, | 57 | { TRACER_OPT(funcgraph-irqs, TRACE_GRAPH_PRINT_IRQS) }, |
| 58 | /* Display function name after trailing } */ | ||
| 59 | { TRACER_OPT(funcgraph-tail, TRACE_GRAPH_PRINT_TAIL) }, | ||
| 67 | { } /* Empty entry */ | 60 | { } /* Empty entry */ |
| 68 | }; | 61 | }; |
| 69 | 62 | ||
| 70 | static struct tracer_flags tracer_flags = { | 63 | static struct tracer_flags tracer_flags = { |
| 71 | /* Don't display overruns and proc by default */ | 64 | /* Don't display overruns, proc, or tail by default */ |
| 72 | .val = TRACE_GRAPH_PRINT_CPU | TRACE_GRAPH_PRINT_OVERHEAD | | 65 | .val = TRACE_GRAPH_PRINT_CPU | TRACE_GRAPH_PRINT_OVERHEAD | |
| 73 | TRACE_GRAPH_PRINT_DURATION | TRACE_GRAPH_PRINT_IRQS, | 66 | TRACE_GRAPH_PRINT_DURATION | TRACE_GRAPH_PRINT_IRQS, |
| 74 | .opts = trace_opts | 67 | .opts = trace_opts |
| @@ -1176,9 +1169,10 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s, | |||
| 1176 | * If the return function does not have a matching entry, | 1169 | * If the return function does not have a matching entry, |
| 1177 | * then the entry was lost. Instead of just printing | 1170 | * then the entry was lost. Instead of just printing |
| 1178 | * the '}' and letting the user guess what function this | 1171 | * the '}' and letting the user guess what function this |
| 1179 | * belongs to, write out the function name. | 1172 | * belongs to, write out the function name. Always do |
| 1173 | * that if the funcgraph-tail option is enabled. | ||
| 1180 | */ | 1174 | */ |
| 1181 | if (func_match) { | 1175 | if (func_match && !(flags & TRACE_GRAPH_PRINT_TAIL)) { |
| 1182 | ret = trace_seq_puts(s, "}\n"); | 1176 | ret = trace_seq_puts(s, "}\n"); |
| 1183 | if (!ret) | 1177 | if (!ret) |
| 1184 | return TRACE_TYPE_PARTIAL_LINE; | 1178 | return TRACE_TYPE_PARTIAL_LINE; |
| @@ -1505,7 +1499,6 @@ static struct tracer graph_trace __tracer_data = { | |||
| 1505 | .pipe_open = graph_trace_open, | 1499 | .pipe_open = graph_trace_open, |
| 1506 | .close = graph_trace_close, | 1500 | .close = graph_trace_close, |
| 1507 | .pipe_close = graph_trace_close, | 1501 | .pipe_close = graph_trace_close, |
| 1508 | .wait_pipe = poll_wait_pipe, | ||
| 1509 | .init = graph_trace_init, | 1502 | .init = graph_trace_init, |
| 1510 | .reset = graph_trace_reset, | 1503 | .reset = graph_trace_reset, |
| 1511 | .print_line = print_graph_function, | 1504 | .print_line = print_graph_function, |
