Re: FUNCTION_TRACER: can it be used to trace early bootup functions

Tim Bird
2010-05-24T23:32:24Z

On 05/23/2010 11:55 PM, Iram Shahzad wrote:
> Hi
>
> I would like to know whether the Kernel Function Tracer
> (kernel/trace/trace_functions) be used to trace early kernel
> bootup functions starting from start_kernel?
> My arch is ARM, by the way.
>
>
> I have done some trials but it doesn't seem to trace early
> bootup functions. I even made it the default tracer replacing
> the nop tracer, but still it doesn't give me trace from
> start_kernel.
>
> Looking at the source code, it seems to me that it starts
> recording data only after its own initialization. So does it
> mean that by design it does not support early tracing?
By design, the trace code is initialized during
initcall processing. This means you miss all initialization
up to this point in the kernel.

Measuring this on my own ARM platforms, I have found that
this results in missing about the first 50 milliseconds
of kernel initialization (from start_kernel() to the
tracer initialization). For me, this is not a big
problem. Note that you can't measure the period
of time from start_kernel() to whenever the ARM memory
and clocks are initialized.

IMHO the best way to measure stuff between the end
of bootloader and tracer initialization is with an
external tracer, like http://elinux.org/Grabserial
and using CONFIG_DEBUG_LL, and your own calls to
printascii() on ARM.
-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Network Entertainment
=============================