2020-05-16 16:51:57

by Changbin Du

[permalink] [raw]
Subject: [PATCH] function_graph: apply tracing option 'irq-info'

The tracing option 'irq-info' is only used by function tracer by far. This
patch makes it also against function graph tracer. Then the two tracers
have consistent behavior of this option.

Signed-off-by: Changbin Du <[email protected]>
---
kernel/trace/trace_functions_graph.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 4a9c49c08ec9..86e410907649 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -541,7 +541,7 @@ print_graph_irq(struct trace_iterator *iter, unsigned long addr,
}

/* Latency format */
- if (tr->trace_flags & TRACE_ITER_LATENCY_FMT)
+ if (tr->trace_flags & (TRACE_ITER_LATENCY_FMT | TRACE_ITER_IRQ_INFO))
print_graph_lat_fmt(s, ent);
}

@@ -753,7 +753,7 @@ print_graph_prologue(struct trace_iterator *iter, struct trace_seq *s,
}

/* Latency format */
- if (tr->trace_flags & TRACE_ITER_LATENCY_FMT)
+ if (tr->trace_flags & (TRACE_ITER_LATENCY_FMT | TRACE_ITER_IRQ_INFO))
print_graph_lat_fmt(s, ent);

return;
@@ -1135,7 +1135,7 @@ static void print_lat_header(struct seq_file *s, u32 flags)
static void __print_graph_headers_flags(struct trace_array *tr,
struct seq_file *s, u32 flags)
{
- int lat = tr->trace_flags & TRACE_ITER_LATENCY_FMT;
+ int lat = tr->trace_flags & (TRACE_ITER_LATENCY_FMT | TRACE_ITER_IRQ_INFO);

if (lat)
print_lat_header(s, flags);
--
2.25.1


2020-05-18 21:29:30

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] function_graph: apply tracing option 'irq-info'

On Sun, 17 May 2020 00:09:53 +0800
Changbin Du <[email protected]> wrote:

> The tracing option 'irq-info' is only used by function tracer by far. This
> patch makes it also against function graph tracer. Then the two tracers
> have consistent behavior of this option.
>
> Signed-off-by: Changbin Du <[email protected]>
> ---

Sorry, the function graph tracer is unique, and yes, you need to enable
latency_format.

Note, irq_info is meaning less with the function_graph tracer, as it
doesn't change the latency_format with or without it.

This patch basically just makes the latency_format default for the
function_graph tracer, and changes default settings for no real advantage.
It will cause regressions.

-- Steve