tracing: Show sample std dev in function profiling
authorChase Douglas <chase.douglas@canonical.com>
Mon, 26 Apr 2010 18:02:05 +0000 (14:02 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 27 Apr 2010 22:23:15 +0000 (18:23 -0400)
commite330b3bcd83199dd63a819d8d12e40f9edae6c77
tree45d488ed1f112db14ca180af5f4d2d09515a1f09
parent07271aa42d13378e67ebd79ea9ca1c4a5e2ad46f
tracing: Show sample std dev in function profiling

When combined with function graph tracing the ftrace function profiler
also prints the average run time of functions. While this gives us some
good information, it doesn't tell us anything about the variance of the
run times of the function. This change prints out the s^2 sample
standard deviation alongside the average.

This change adds one entry to the profile record structure. This
increases the memory footprint of the function profiler by 1/3 on a
32-bit system, and by 1/5 on a 64-bit system when function graphing is
enabled, though the memory is only allocated when the profiler is turned
on. During the profiling, one extra line of code adds the squared
calltime to the new record entry, so this should not adversly affect
performance.

Note that the square of the sample standard deviation is printed because
there is no sqrt implementation for unsigned long long in the kernel.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
LKML-Reference: <1272304925-2436-1-git-send-email-chase.douglas@canonical.com>

[ fixed comment about ns^2 -> us^2 conversion ]
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ftrace.c