diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-03-23 17:12:36 -0400 |
---|---|---|
committer | Steven Rostedt <srostedt@redhat.com> | 2009-03-24 23:41:06 -0400 |
commit | 493762fc534c71d11d489f872c4b4a2c61173668 (patch) | |
tree | 90f308853f26ad5334717d53b18680957aab5ff4 /include/linux/ftrace.h | |
parent | bac429f037f1a51a74d62bad6d1518c3be065df3 (diff) | |
download | kernel_samsung_espresso10-493762fc534c71d11d489f872c4b4a2c61173668.zip kernel_samsung_espresso10-493762fc534c71d11d489f872c4b4a2c61173668.tar.gz kernel_samsung_espresso10-493762fc534c71d11d489f872c4b4a2c61173668.tar.bz2 |
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>
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r-- | include/linux/ftrace.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 0456c3a..015a3d2 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -153,10 +153,6 @@ struct dyn_ftrace { unsigned long flags; struct dyn_ftrace *newlist; }; -#ifdef CONFIG_FUNCTION_PROFILER - unsigned long counter; - struct hlist_node node; -#endif struct dyn_arch_ftrace arch; }; |