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.

Signed-off-by: Daniel Bristot de Oliveira <[email protected]>
Reviewed-by: Luis Claudio R. Goncalves <[email protected]>

---
 kernel/trace/trace_functions_graph.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/kernel/trace/trace_functions_graph.c 
b/kernel/trace/trace_functions_graph.c
index f0a0c98..740f1a0 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,
 {
        int ret;
        struct trace_seq *s = &iter->seq;
+       struct trace_entry *ent = iter->ent;
 
        if (addr < (unsigned long)__irqentry_text_start ||
                addr >= (unsigned long)__irqentry_text_end)
@@ -728,6 +729,14 @@ print_graph_irq(struct trace_iterator *iter, unsigned long 
addr,
                        if (!ret)
                                return TRACE_TYPE_PARTIAL_LINE;
                }
+
+               /* Latency format */
+               if (trace_flags & TRACE_ITER_LATENCY_FMT) {
+                       ret = print_graph_lat_fmt(s, ent);
+                       if (ret == TRACE_TYPE_PARTIAL_LINE)
+                               return TRACE_TYPE_PARTIAL_LINE;
+               }
+
        }
 
        /* No overhead */
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to