Linux 内核中 jiffie 的分辨率是多少

eff*_*nok 12 linux timestamps

Linux 内核中 jiffie 的分辨率是多少?

根据当前的计时器来源 ( cat /sys/devices/system/clocksource/clocksource0/current_clocksource),Linux 使用 TSC 并具有纳秒级分辨率

根据http://lxr.free-electrons.com/source/include/linux/jiffies.h jiffie 不小于 1us,但可以更大。

有没有办法确定其当前分辨率。

slm*_*slm 8

如果你看一下手册页 man 7 time

HZ 的值因内核版本和硬件平台而异。在 i386 上,情况如下:在 2.4.x 及以下的内核上,HZ 为 100,jiffy 值为 0.01 秒;从 2.6.0 开始,HZ 被提高到 1000,给出 0.001 秒的瞬间。从内核 2.6.13 开始,HZ 值是内核配置参数,可以是 100、250(默认值)或 1000,产生的 jiffies 值分别为 0.01、0.004 或 0.001 秒。从内核 2.6.20 开始,可以使用更多频率:300,这是一个平均分配常见视频帧速率(PAL,25 HZ;NTSC,30 HZ)的数字。

times(2) 系统调用是一个特例。它以内核配置定义的粒度报告时间?固定 USER_HZ。用户空间应用程序可以
使用 sysconf(_SC_CLK_TCK)确定该常量的值。

您可以查询CLK_TCK常量:

$ getconf CLK_TCK
100
Run Code Online (Sandbox Code Playgroud)

这告诉你 HZ 的值,即 100。这个值是一秒内 jiffies 的数量。

参考