重新启动后,jiffies 没有初始化为零,而是设置为某个高值(靠近环绕)。

例如(重新启动后立即):

cat /proc/timer_list | grep jiffies
    .idle_jiffies   : 4294902561
    .last_jiffies   : 4294902561
    .next_jiffies   : 4294902623
jiffies: 4294902561
    .idle_jiffies   : 4294902561
    .last_jiffies   : 4294902561
    .next_jiffies   : 4294902568
jiffies: 4294902561
    .idle_jiffies   : 4294902561
    .last_jiffies   : 4294902561
    .next_jiffies   : 4294902679
jiffies: 4294902561
    .idle_jiffies   : 4294902561
    .last_jiffies   : 4294902561
    .next_jiffies   : 4294902607

我错过了什么?我正在运行 Ubuntu 12.04 LTS,3.13.0-36-generic。谢谢!

最佳答案

在启动时 jiffies 不是由零初始化,而是由 INITIAL_JIFFIES 常量初始化。

你可以在 linux 内核头文件中看到这个常量:

$ cd your_path_to_linux_kernel_headers
$ grep INITIAL_JIFFIES linux/jiffies.h
#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))

它是由 this patch 引入的,用于帮助检测与该溢出相关的问题。

抱歉久等了答案。 :)

关于linux - 启动时 Jiffies 不为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26223685/

10-11 15:28