Skip to content

Commit

Permalink
tracing: Add ftrace events for graph tracer
Browse files Browse the repository at this point in the history
Add ftrace events for graph tracer, so the graph output could be shared
with other tracers.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
LKML-Reference: <1270227683-14631-2-git-send-email-jolsa@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
Jiri Olsa authored and Steven Rostedt committed Apr 26, 2010
1 parent 77a7f2e commit 9106b69
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion kernel/trace/trace_functions_graph.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ struct fgraph_data {
#define TRACE_GRAPH_PRINT_OVERHEAD 0x4
#define TRACE_GRAPH_PRINT_PROC 0x8
#define TRACE_GRAPH_PRINT_DURATION 0x10
#define TRACE_GRAPH_PRINT_ABS_TIME 0X20
#define TRACE_GRAPH_PRINT_ABS_TIME 0x20

static struct tracer_opt trace_opts[] = {
/* Display overruns? (for self-debug purpose) */
Expand Down Expand Up @@ -1096,6 +1096,12 @@ print_graph_function(struct trace_iterator *iter)
return TRACE_TYPE_HANDLED;
}

static enum print_line_t
print_graph_function_event(struct trace_iterator *iter, int flags)
{
return print_graph_function(iter);
}

static void print_lat_header(struct seq_file *s)
{
static const char spaces[] = " " /* 16 spaces */
Expand Down Expand Up @@ -1199,6 +1205,16 @@ static void graph_trace_close(struct trace_iterator *iter)
}
}

static struct trace_event graph_trace_entry_event = {
.type = TRACE_GRAPH_ENT,
.trace = print_graph_function_event,
};

static struct trace_event graph_trace_ret_event = {
.type = TRACE_GRAPH_RET,
.trace = print_graph_function_event,
};

static struct tracer graph_trace __read_mostly = {
.name = "function_graph",
.open = graph_trace_open,
Expand All @@ -1220,6 +1236,16 @@ static __init int init_graph_trace(void)
{
max_bytes_for_cpu = snprintf(NULL, 0, "%d", nr_cpu_ids - 1);

if (!register_ftrace_event(&graph_trace_entry_event)) {
pr_warning("Warning: could not register graph trace events\n");
return 1;
}

if (!register_ftrace_event(&graph_trace_ret_event)) {
pr_warning("Warning: could not register graph trace events\n");
return 1;
}

return register_tracer(&graph_trace);
}

Expand Down

0 comments on commit 9106b69

Please sign in to comment.