Linux version 3.10.40
1. 使用说明
Documentation/kernel-parameters.txt中的说明如下:
initcall_debug [KNL] Trace initcalls as they are executed. Useful
for working out where the kernel is dying during
startup.
说明initcall_debug是一个内核参数,可以跟踪initcall,用来定位内核初始化的问题。在cmdline中增加initcall_debug后,内核启动过程中会增加如下形式的日志,在调用每一个init函数前有一句打印,结束后再有一句打印并且输出了该Init函数运行的时间,通过这个信息可以用来定位启动过程中哪个init函数运行失败以及哪些init函数运行时间较长。
calling init_workqueues+0x0/0x414 @ 1
initcall init_workqueues+0x0/0x414 returned 0 after 0 usecs
除了在启动过程中会增加日志外,在系统休眠唤醒过程中也会增加如下形式的日志,可以用来定位休眠唤醒失败及休眠唤醒时间太长的问题。
calling xxxxxx.dma+ @ 6, parent: xxx.0
call xxxxxx.dma+ returned 0 after 2 usecs
2. 相关代码
./init/main.c中声明变量的地方如下,通过core_param,可以通过/sys/module/kernel/parameters/init