diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-13 14:40:50 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-13 14:40:50 -0800 | 
| commit | 8655e7e3ddec60603c4f6c14cdf642e2ba198df8 (patch) | |
| tree | 711b6da2a665e26940c59b9db493c59d879f6cc6 /kernel/trace/trace_functions_graph.c | |
| parent | 461d208cfbd1f0af26027b2c35ded515e54b1ee6 (diff) | |
| parent | b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15 (diff) | |
| download | olio-linux-3.10-8655e7e3ddec60603c4f6c14cdf642e2ba198df8.tar.xz olio-linux-3.10-8655e7e3ddec60603c4f6c14cdf642e2ba198df8.zip  | |
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  tracing: Do not record user stack trace from NMI context
  tracing: Disable buffer switching when starting or stopping trace
  tracing: Use same local variable when resetting the ring buffer
  function-graph: Init curr_ret_stack with ret_stack
  ring-buffer: Move disabled check into preempt disable section
  function-graph: Add tracing_thresh support to function_graph tracer
  tracing: Update the comm field in the right variable in update_max_tr
  function-graph: Use comment notation for func names of dangling '}'
  function-graph: Fix unused reference to ftrace_set_func()
  tracing: Fix warning in s_next of trace file ops
  tracing: Include irqflags headers from trace clock
Diffstat (limited to 'kernel/trace/trace_functions_graph.c')
| -rw-r--r-- | kernel/trace/trace_functions_graph.c | 27 | 
1 files changed, 24 insertions, 3 deletions
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index 3fc2a575664..e6989d9b44d 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c @@ -237,6 +237,14 @@ int trace_graph_entry(struct ftrace_graph_ent *trace)  	return ret;  } +int trace_graph_thresh_entry(struct ftrace_graph_ent *trace) +{ +	if (tracing_thresh) +		return 1; +	else +		return trace_graph_entry(trace); +} +  static void __trace_graph_return(struct trace_array *tr,  				struct ftrace_graph_ret *trace,  				unsigned long flags, @@ -290,13 +298,26 @@ void set_graph_array(struct trace_array *tr)  	smp_mb();  } +void trace_graph_thresh_return(struct ftrace_graph_ret *trace) +{ +	if (tracing_thresh && +	    (trace->rettime - trace->calltime < tracing_thresh)) +		return; +	else +		trace_graph_return(trace); +} +  static int graph_trace_init(struct trace_array *tr)  {  	int ret;  	set_graph_array(tr); -	ret = register_ftrace_graph(&trace_graph_return, -				    &trace_graph_entry); +	if (tracing_thresh) +		ret = register_ftrace_graph(&trace_graph_thresh_return, +					    &trace_graph_thresh_entry); +	else +		ret = register_ftrace_graph(&trace_graph_return, +					    &trace_graph_entry);  	if (ret)  		return ret;  	tracing_start_cmdline_record(); @@ -920,7 +941,7 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s,  		if (!ret)  			return TRACE_TYPE_PARTIAL_LINE;  	} else { -		ret = trace_seq_printf(s, "} (%ps)\n", (void *)trace->func); +		ret = trace_seq_printf(s, "} /* %ps */\n", (void *)trace->func);  		if (!ret)  			return TRACE_TYPE_PARTIAL_LINE;  	}  |