tracing/function-graph-tracer: implement a print_headers function
authorFrederic Weisbecker <fweisbec@gmail.com>
Mon, 8 Dec 2008 00:56:06 +0000 (01:56 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 8 Dec 2008 12:24:52 +0000 (13:24 +0100)
Impact: provide trace headers to explain a bit the output

This patch implements the print_headers callback for the function graph
tracer. These headers are output according to the current trace options.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/trace/trace_functions_graph.c

index 32b7fb9..af60eef 100644 (file)
@@ -570,11 +570,36 @@ print_graph_function(struct trace_iterator *iter)
        }
 }
 
+static void print_graph_headers(struct seq_file *s)
+{
+       /* 1st line */
+       seq_printf(s, "# ");
+       if (tracer_flags.val & TRACE_GRAPH_PRINT_CPU)
+               seq_printf(s, "CPU ");
+       if (tracer_flags.val & TRACE_GRAPH_PRINT_PROC)
+               seq_printf(s, "TASK/PID     ");
+       if (tracer_flags.val & TRACE_GRAPH_PRINT_OVERHEAD)
+               seq_printf(s, "OVERHEAD/");
+       seq_printf(s, "DURATION            FUNCTION CALLS\n");
+
+       /* 2nd line */
+       seq_printf(s, "# ");
+       if (tracer_flags.val & TRACE_GRAPH_PRINT_CPU)
+               seq_printf(s, "|   ");
+       if (tracer_flags.val & TRACE_GRAPH_PRINT_PROC)
+               seq_printf(s, "|      |     ");
+       if (tracer_flags.val & TRACE_GRAPH_PRINT_OVERHEAD) {
+               seq_printf(s, "|        ");
+               seq_printf(s, "|                   |   |   |   |\n");
+       } else
+               seq_printf(s, "    |               |   |   |   |\n");
+}
 static struct tracer graph_trace __read_mostly = {
-       .name        = "function_graph",
-       .init        = graph_trace_init,
-       .reset       = graph_trace_reset,
-       .print_line = print_graph_function,
+       .name           = "function_graph",
+       .init           = graph_trace_init,
+       .reset          = graph_trace_reset,
+       .print_line     = print_graph_function,
+       .print_header   = print_graph_headers,
        .flags          = &tracer_flags,
 };