Messages in this thread | | | Date | Mon, 24 May 2010 16:32:07 -0700 | From | Tim Bird <> | Subject | Re: FUNCTION_TRACER: can it be used to trace early bootup functions |
| |
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 =============================
| |