tracing: move function profiler data out of function struct
authorSteven Rostedt <srostedt@redhat.com>
Mon, 23 Mar 2009 21:12:36 +0000 (17:12 -0400)
committerSteven Rostedt <srostedt@redhat.com>
Wed, 25 Mar 2009 03:41:06 +0000 (23:41 -0400)
commit493762fc534c71d11d489f872c4b4a2c61173668
tree90f308853f26ad5334717d53b18680957aab5ff4
parentbac429f037f1a51a74d62bad6d1518c3be065df3
tracing: move function profiler data out of function struct

Impact: reduce size of memory in function profiler

The function profiler originally introduces its counters into the
function records itself. There is 20 thousand different functions on
a normal system, and that is adding 20 thousand counters for profiling
event when not needed.

A normal run of the profiler yields only a couple of thousand functions
executed, depending on what is being profiled. This means we have around
18 thousand useless counters.

This patch rectifies this by moving the data out of the function
records used by dynamic ftrace. Data is preallocated to hold the functions
when the profiling begins. Checks are made during profiling to see if
more recorcds should be allocated, and they are allocated if it is safe
to do so.

This also removes the dependency from using dynamic ftrace, and also
removes the overhead by having it enabled.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
include/linux/ftrace.h
kernel/trace/Kconfig
kernel/trace/ftrace.c