启动时 Jiffies 不为零

kdo*_*dop 4 linux linux-device-driver linux-kernel

重新启动后,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
Run Code Online (Sandbox Code Playgroud)

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

sha*_*ote 6

在启动时 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))
Run Code Online (Sandbox Code Playgroud)

此补丁 引入它以帮助检测与该溢出相关的问题

抱歉久等了答案。:)