From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhengda1936@gmail.com (Da Zheng) Date: Wed, 06 Jul 2011 17:34:34 -0700 Subject: How to profile the kernel during its initialization? In-Reply-To: References: Message-ID: <4E14FF1A.5080503@gmail.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On 07/05/11 21:17, Vladimir Murzin wrote: > On Wed, Jul 6, 2011 at 12:47 AM, Zheng Da wrote: >> Hello >> >> Can we profile the kernel during its initialization? perf is >> initialized in an early stage in start_kernel(), but it seems there >> are no command-line parameters to enable it. >> Does anyone have any ideas how to profile the kernel during its >> initialization (before user space programs start to run)? I think >> someone should have the similar problem as me, and there should be >> some solutions. >> >> Thanks, >> Da >> >> _______________________________________________ >> Kernelnewbies mailing list >> Kernelnewbies at kernelnewbies.org >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >> > Hi Da, > > Have a look at ftrace. It could be used to profile initcalls. > Just add following boot options: > > initcall_debug, ftrace=initcall > > More details on > http://www.omappedia.org/wiki/Installing_and_Using_Ftrace#Boot_Tracer I'm reading the code of ftrace. Most of tracers are registered in device initcalls. So if I enable a tracer in the kernel parameters, it only starts to work after device initcalls. Actually, what I really want to trace is device initcalls. Is there any reason why tracers have to be registered in device initcalls? Can I move them to an earlier place? at least some of them, such as function tracer and function graph tracer. Thanks, Da