2016-04-06 22 views
0

我有两台机器,一台x86机器的HZ值为1000,其他嵌入式机器的HZ值为250. 如果我在两台机器上都使用内核定时器,使用 timer.expires = msecs_to_jiffies(x), 所以现在时间到期时间在两台机器上都是相同的'x'毫秒,或者在这些情况下我们需要特别小心。在两个平台上HZ的linux值会不同于内核定时器?

+1

检查**/proc/timer_list **的内容以获得每个系统上定时器的分辨率。 – sawdust

回答

2

如果您使用高分辨率定时器(内核配置),那么内核定时器使用它,您将得到一个正确的结果。
如果您不使用HR定时器,那么在HZ = 250系统上,最小时间片是4 ms。所以如果你睡得少,你会在下一次的时间醒来。例如,如果您运行1000次睡眠1ms的循环,循环将在4秒后结束。