diff options
Diffstat (limited to 'kernel/trace/trace_functions_graph.c')
| -rw-r--r-- | kernel/trace/trace_functions_graph.c | 72 |
1 files changed, 71 insertions, 1 deletions
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index c66578f2fdc2..32b7fb9a19df 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c | |||
| @@ -173,7 +173,7 @@ verif_pid(struct trace_seq *s, pid_t pid, int cpu) | |||
| 173 | 173 | ||
| 174 | */ | 174 | */ |
| 175 | ret = trace_seq_printf(s, | 175 | ret = trace_seq_printf(s, |
| 176 | "\n ------------------------------------------\n |"); | 176 | " ------------------------------------------\n"); |
| 177 | if (!ret) | 177 | if (!ret) |
| 178 | TRACE_TYPE_PARTIAL_LINE; | 178 | TRACE_TYPE_PARTIAL_LINE; |
| 179 | 179 | ||
| @@ -477,6 +477,71 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s, | |||
| 477 | return TRACE_TYPE_HANDLED; | 477 | return TRACE_TYPE_HANDLED; |
| 478 | } | 478 | } |
| 479 | 479 | ||
| 480 | static enum print_line_t | ||
| 481 | print_graph_comment(struct print_entry *trace, struct trace_seq *s, | ||
| 482 | struct trace_entry *ent, struct trace_iterator *iter) | ||
| 483 | { | ||
| 484 | int i; | ||
| 485 | int ret; | ||
| 486 | |||
| 487 | /* Pid */ | ||
| 488 | if (verif_pid(s, ent->pid, iter->cpu) == TRACE_TYPE_PARTIAL_LINE) | ||
| 489 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 490 | |||
| 491 | /* Cpu */ | ||
| 492 | if (tracer_flags.val & TRACE_GRAPH_PRINT_CPU) { | ||
| 493 | ret = print_graph_cpu(s, iter->cpu); | ||
| 494 | if (ret == TRACE_TYPE_PARTIAL_LINE) | ||
| 495 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 496 | } | ||
| 497 | |||
| 498 | /* Proc */ | ||
| 499 | if (tracer_flags.val & TRACE_GRAPH_PRINT_PROC) { | ||
| 500 | ret = print_graph_proc(s, ent->pid); | ||
| 501 | if (ret == TRACE_TYPE_PARTIAL_LINE) | ||
| 502 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 503 | |||
| 504 | ret = trace_seq_printf(s, " | "); | ||
| 505 | if (!ret) | ||
| 506 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 507 | } | ||
| 508 | |||
| 509 | /* No overhead */ | ||
| 510 | if (tracer_flags.val & TRACE_GRAPH_PRINT_OVERHEAD) { | ||
| 511 | ret = trace_seq_printf(s, " "); | ||
| 512 | if (!ret) | ||
| 513 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 514 | } | ||
| 515 | |||
| 516 | /* No time */ | ||
| 517 | ret = trace_seq_printf(s, " | "); | ||
| 518 | if (!ret) | ||
| 519 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 520 | |||
| 521 | /* Indentation */ | ||
| 522 | if (trace->depth > 0) | ||
| 523 | for (i = 0; i < (trace->depth + 1) * TRACE_GRAPH_INDENT; i++) { | ||
| 524 | ret = trace_seq_printf(s, " "); | ||
| 525 | if (!ret) | ||
| 526 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 527 | } | ||
| 528 | |||
| 529 | /* The comment */ | ||
| 530 | ret = trace_seq_printf(s, "/* %s", trace->buf); | ||
| 531 | if (!ret) | ||
| 532 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 533 | |||
| 534 | if (ent->flags & TRACE_FLAG_CONT) | ||
| 535 | trace_seq_print_cont(s, iter); | ||
| 536 | |||
| 537 | ret = trace_seq_printf(s, " */\n"); | ||
| 538 | if (!ret) | ||
| 539 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 540 | |||
| 541 | return TRACE_TYPE_HANDLED; | ||
| 542 | } | ||
| 543 | |||
| 544 | |||
| 480 | enum print_line_t | 545 | enum print_line_t |
| 481 | print_graph_function(struct trace_iterator *iter) | 546 | print_graph_function(struct trace_iterator *iter) |
| 482 | { | 547 | { |
| @@ -495,6 +560,11 @@ print_graph_function(struct trace_iterator *iter) | |||
| 495 | trace_assign_type(field, entry); | 560 | trace_assign_type(field, entry); |
| 496 | return print_graph_return(&field->ret, s, entry, iter->cpu); | 561 | return print_graph_return(&field->ret, s, entry, iter->cpu); |
| 497 | } | 562 | } |
| 563 | case TRACE_PRINT: { | ||
| 564 | struct print_entry *field; | ||
| 565 | trace_assign_type(field, entry); | ||
| 566 | return print_graph_comment(field, s, entry, iter); | ||
| 567 | } | ||
| 498 | default: | 568 | default: |
| 499 | return TRACE_TYPE_UNHANDLED; | 569 | return TRACE_TYPE_UNHANDLED; |
| 500 | } | 570 | } |
