如何在intel rangeley板上测量linux内核的总启动时间

时间:2016-03-21 04:16:10

标签: linux intel

我正在研究intel rangeley board。我想测量启动linux内核所需的总时间。是否有任何可行且经过验证的方法可以在intel板上实现这一目标?

1 个答案:

答案 0 :(得分:2)

尝试使用rdtsc。根据英特尔insn ref手册:

  

处理器单调递增时间戳计数器MSR   每个时钟周期,只要处理器复位,就会将其复位为0。   请参阅英特尔®64和IA-32第17章中的“时间戳计数器”   架构软件开发人员手册,第3B卷,具体   时间戳计数器行为的详细信息。

(请参阅标签wiki以获取手册链接)

通常,TSC仅用于两个时间点之间的相对测量,或用作时间源。绝对值显然是有意义的。它以CPU的额定时钟速度为准,无论它实际运行的节能时钟速度如何。

您可能需要确保在多核系统上从启动CPU读取TSC。其他内核可能尚未启动其TSC,直到Linux发送一个处理器间中断来启动它们。 Linux可能会将其TSC同步到引导CPU的TSC,因为gettimeofday()确实使用了TSC。 IDK,我只是写下我自己一定要检查的东西。

您可能需要采取预防措施,以避免在将内核用作时间源时让内核修改TSC。可能是通过一个强制Linux使用不同时间源的引导选项。