2011-10-25 38 views
0

我们正在运行SLES10(2.6.16.60-0.54.5-smp)和SLES11(2.6.32.12-0.7-默认)。nanosleep - 需要低分辨率

2.6.16之后,纳秒被更改为使用高分辨率计时器。
我们的代码必须在SLES10和SLES11上运行时具有类似的特性。目前,由于SLES11内核配置为高分辨率定时器(我们可能不会更改),因此我们发现CPU使用率远高于SLES10。一个简单的循环纳秒睡眠将显示在SLES11上的“顶部”,而不是在SLES10上。

我们可以将代码中的调用更改为纳秒,但不知道要更改哪些内容才能使它们在两个平台上均等效。

更多信息:在SLES11上的 ,内核定时器的中断频率大约是。内核定时器中断频率大约为4016 Hz或更高 。 250赫兹

应该在timespec的tv_nsec中使用什么值来减少SLES11平台上的CPU使用率?

回答

0

先前的行为(以250Hz中断频率睡眠纳秒)平均睡眠时间为1/500秒。

如果您希望与以前大致相同的行为,您可以简单地睡眠1/500秒,即2000000纳秒。