gpt4 book ai didi

linux - 为什么我不能将 jiffies 与正常运行时间相匹配?

转载 作者:太空狗 更新时间:2023-10-29 11:03:56 37 4
gpt4 key购买 nike

据我所知,Linux内核中的“jiffies”是开机后的滴答数,一秒内的滴答数用“HZ”来定义,所以理论上:

(uptime in seconds) = jiffies / HZ

但根据我的测试,上述情况并非如此。例如:

$ 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

所以“HZ”是 1000,现在看看 jiffies 和正常运行时间:

$ grep ^jiffies /proc/timer_list
jiffies: 8833841974
jiffies: 8833841974
...
$ cat /proc/uptime
4539183.14 144549693.77

正如我们所见,“jiffies”与正常运行时间有很大不同。我已经在很多盒子上进行了测试,没有一个 jiffies 甚至接近正常运行时间。我做错了什么?

最佳答案

您尝试做的是 10 年前 Linux 的工作方式。

从那以后,事情变得更加复杂了。我所知道的一些并发症是:

  • 有一个 -5 分钟的偏移量,以便内核始终测试快速翻转。
  • 内核命令行可以设置一个快速跳跃值,因此 1000 Hz 内核可以以 250、100 或 10 运行。
  • NoHZ 的各种尝试根本不使用计时器滴答,而仅依赖计时器环和 HPET。
  • 我相信有一些虚拟 guest 扩展会禁用 tick,并在需要 tick 时询问主机管理程序。例如 Xen 或 UML 构建。

这就是内核具有旨在告诉您时间的函数的原因。使用它们或弄清楚它们在做什么并复制它。

关于linux - 为什么我不能将 jiffies 与正常运行时间相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608294/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com