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。谢谢!
在启动时 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)
此补丁 引入它以帮助检测与该溢出相关的问题。
抱歉久等了答案。:)