Re: [PATCH 2/2] tracing/function-graph-tracer: use the more lightweight local clock

Ingo Molnar
2009-03-05T11:04:54Z

* Frederic Weisbecker <fweisbec@gmail.com> wrote:

> Impact: decrease hangs risks with the graph tracer on slow systems
>
> Since the function graph tracer can spend too much time on
> timer interrupts, it's better now to use the more lightweight
> local clock. Anyway, the function graph traces are more
> reliable on a per cpu trace.
>
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> ---
> arch/x86/kernel/ftrace.c | 2 +-
> kernel/trace/trace_functions_graph.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
> index 3925ec0..40960c2 100644
> --- a/arch/x86/kernel/ftrace.c
> +++ b/arch/x86/kernel/ftrace.c
> @@ -436,7 +436,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
> return;
> }
>
> - calltime = cpu_clock(raw_smp_processor_id());
> + calltime = sched_clock();

I changed this to trace_clock_local() :-)

(btw, we should turn trace_clock_local() into an inline
function)

There will be one problem though: function trace elapsed time
measurements across idle. Those are not correctly measured by
the local clock.

Ingo