diff options
author | Daniel Bristot de Oliveira <bristot@redhat.com> | 2014-11-06 12:25:09 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2014-11-14 07:56:02 -0500 |
commit | 678f845ed0f40c29a74cd8dd60c48f2a6db44dc9 (patch) | |
tree | 0362f242f3a87ec3ba405c3040232177a371b9c8 /kernel/trace/trace_functions_graph.c | |
parent | 1177e4364154a00baf2c9eb72fd960f0c5a8de84 (diff) |
ftrace-graph: show latency-format on print_graph_irq()
On the function_graph tracer, the print_graph_irq() function prints a
trace line with the flag ==========> on an irq handler entry, and the
flag <========== on an irq handler return.
But when the latency-format is enable, it is not printing the
latency-format flags, causing the following error in the trace output:
0) ==========> |
0) d... | smp_apic_timer_interrupt() {
This patch fixes this issue by printing the latency-format flags when
it is enable.
Link: http://lkml.kernel.org/r/7c2e226dac20c940b6242178fab7f0e3c9b5ce58.1415233316.git.bristot@redhat.com
Reviewed-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_functions_graph.c')
-rw-r--r-- | kernel/trace/trace_functions_graph.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index a82d1d3bd76d..93ebba09622e 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c | |||
@@ -699,6 +699,7 @@ print_graph_irq(struct trace_iterator *iter, unsigned long addr, | |||
699 | { | 699 | { |
700 | int ret; | 700 | int ret; |
701 | struct trace_seq *s = &iter->seq; | 701 | struct trace_seq *s = &iter->seq; |
702 | struct trace_entry *ent = iter->ent; | ||
702 | 703 | ||
703 | if (addr < (unsigned long)__irqentry_text_start || | 704 | if (addr < (unsigned long)__irqentry_text_start || |
704 | addr >= (unsigned long)__irqentry_text_end) | 705 | addr >= (unsigned long)__irqentry_text_end) |
@@ -728,6 +729,14 @@ print_graph_irq(struct trace_iterator *iter, unsigned long addr, | |||
728 | if (!ret) | 729 | if (!ret) |
729 | return TRACE_TYPE_PARTIAL_LINE; | 730 | return TRACE_TYPE_PARTIAL_LINE; |
730 | } | 731 | } |
732 | |||
733 | /* Latency format */ | ||
734 | if (trace_flags & TRACE_ITER_LATENCY_FMT) { | ||
735 | ret = print_graph_lat_fmt(s, ent); | ||
736 | if (ret == TRACE_TYPE_PARTIAL_LINE) | ||
737 | return TRACE_TYPE_PARTIAL_LINE; | ||
738 | } | ||
739 | |||
731 | } | 740 | } |
732 | 741 | ||
733 | /* No overhead */ | 742 | /* No overhead */ |