aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_functions_graph.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-03-23 23:38:49 -0400
committerSteven Rostedt <srostedt@redhat.com>2009-03-24 09:31:34 -0400
commit5d1a03dc541dc6672e60e57249ed22f40654ca47 (patch)
tree0b72061cc8c56797474d2efbfe1954ce0ad27ce8 /kernel/trace/trace_functions_graph.c
parent098335215a4921a8a54193829eaed602dca24df5 (diff)
downloadkernel_samsung_smdk4412-5d1a03dc541dc6672e60e57249ed22f40654ca47.zip
kernel_samsung_smdk4412-5d1a03dc541dc6672e60e57249ed22f40654ca47.tar.gz
kernel_samsung_smdk4412-5d1a03dc541dc6672e60e57249ed22f40654ca47.tar.bz2
function-graph: moved the timestamp from arch to generic code
This patch move the timestamp from happening in the arch specific code into the general code. This allows for better control by the tracer to time manipulation. Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Diffstat (limited to 'kernel/trace/trace_functions_graph.c')
-rw-r--r--kernel/trace/trace_functions_graph.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index e876816..d28687e 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -57,9 +57,9 @@ static struct tracer_flags tracer_flags = {
/* Add a function return address to the trace stack on thread info.*/
int
-ftrace_push_return_trace(unsigned long ret, unsigned long long time,
- unsigned long func, int *depth)
+ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth)
{
+ unsigned long long calltime;
int index;
if (!current->ret_stack)
@@ -71,11 +71,13 @@ ftrace_push_return_trace(unsigned long ret, unsigned long long time,
return -EBUSY;
}
+ calltime = trace_clock_local();
+
index = ++current->curr_ret_stack;
barrier();
current->ret_stack[index].ret = ret;
current->ret_stack[index].func = func;
- current->ret_stack[index].calltime = time;
+ current->ret_stack[index].calltime = calltime;
*depth = index;
return 0;