Wen*_*bin 6 linux linux-kernel
据我所知,Linux内核中的“jiffies”是开机后的滴答数,一秒的滴答数由“HZ”定义,所以理论上:
(uptime in seconds) = jiffies / HZ
Run Code Online (Sandbox Code Playgroud)
但根据我的测试,上述情况并非如此。例如:
$ uname -r
2.6.32-504.el6.x86_64
$ grep CONFIG_HZ /boot/config-2.6.32-504.el6.x86_64
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
Run Code Online (Sandbox Code Playgroud)
所以“HZ”是 1000,现在看看 jiffies 和正常运行时间:
$ grep ^jiffies /proc/timer_list
jiffies: 8833841974
jiffies: 8833841974
...
$ cat /proc/uptime
4539183.14 144549693.77
Run Code Online (Sandbox Code Playgroud)
正如我们所见,“jiffies”与正常运行时间有很大不同。我已经在许多盒子上进行了测试,没有一个 jiffies 甚至接近正常运行时间。我做错了什么?
您正在尝试做的是 Linux 过去的工作方式 - 10 年前。
从那以后它变得更加复杂。我所知道的一些并发症是:
这就是内核具有旨在告诉您时间的函数的原因。使用它们或弄清楚它们在做什么并复制它。
| 归档时间: |
|
| 查看次数: |
1611 次 |
| 最近记录: |