如何在 Linux 内核的 start_kernel 函数中计时函数?

How to time functions in Linux Kernel's start_kernel function?

我需要弄清楚函数调用在 Linux 内核的 start_kernel 函数中花费的时间。

为什么这是一个问题,因为如果我在同一个函数中的 timekeeping_init() 函数调用之前放置一个 ktime_get() 函数调用,内核将无法启动。

在我的设置中,我认为内核很可能在 mm_init() 中花费了很多时间。但由于上述问题,我无法验证。

关于如何解决这个问题的任何想法?

谢谢。

在启动初期,可用的东西并不多。 printk 不过应该可以。

如果您使用的是 x86,则可以使用 rdtsc()。目前只有 1 CPU 运行,因此关于混淆结果的常见警告还不适用。