Re: [PATCH 0/5][RFC] [RFC] function profiler

Ingo Molnar
2009-03-25T09:53:17Z

* Steven Rostedt <rostedt@goodmis.org> wrote:

> The following patches are RFC, and to discuss is this work would be
> useful.
>
> This patch series adds a function profiler hook to the function tracer
> and function graph tracer. That is, it uses the mcount calls to track the
> functions being called. Now with the function graph tracer it also
> keeps track of the times the functions have been executing.
>
> Note, this is similar to oprofile, but is not a sampling approach, but
> a true recorder. Of course, by recording every function the overhead
> compared to oprofile is higher. With the use of dynamic ftrace, you could
> just trace certain functions, or just a certain module. The flexibility
> is a bit greater with this profiling.
>
> The last patch adds another feature to the function graph. It gives
> the ability to only trace the amount of time inside a function and
> not the amount spent in sub functions that are also recorded. That is,
> if A calls B, you can decide if the time spent in A should include the
> time spent in B. This is an option added to trace_options.
>
> Again, this is all RFC, but if there is any interest in having this
> feature, prehaps we should include it.
>
> -- Steve
>
>
> The following patches are in:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git
>
> branch: rfc/tip/tracing/function-profiler
>
>
> Steven Rostedt (5):
> tracing: add function profiler
> tracing: move function profiler data out of function struct
> tracing: adding function timings to function profiler
> tracing: make the function profiler per cpu
> function-graph: add option to calculate graph time or not
>
> ----
> include/linux/ftrace.h | 3 +-
> kernel/trace/Kconfig | 15 +
> kernel/trace/ftrace.c | 558 +++++++++++++++++++++++++++++++++-
> kernel/trace/trace.c | 15 +-
> kernel/trace/trace.h | 4 +-
> kernel/trace/trace_functions_graph.c | 25 ++-
> kernel/trace/trace_output.c | 10 +
> kernel/trace/trace_output.h | 2 +
> 8 files changed, 608 insertions(+), 24 deletions(-)

Pulled into tip:tracing/profiling, thanks Steve!

Ingo