本文内容主要源于:initcall_debug简要说明

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函数运行时间较长。

1
2
[1.103958] calling  printk_late_init+0x0/0x122 @ 1
[1.103961] initcall printk_late_init+0x0/0x122 returned 0 after 1 usecs

除了在启动过程中会增加日志外,在系统休眠唤醒过程中也会增加如下形式的日志,可以用来定位休眠唤醒失败及休眠唤醒时间太长的问题。

1
2
calling  xxxxxx.dma+ @ 6, parent: xxx.0
call xxxxxx.dma+ returned 0 after 2 usecs


参考资料:

  1. initcall_debug简要说明
  2. Initcall Debug