jrj317的个人空间 https://www.eechina.com/space-uid-9104.html [收藏] [复制] [RSS]

博客

linux time interpolators

已有 875 次阅读2011-4-10 07:37 |

Time Interpolators
------------------
Time interpolators are a base of time calculation between timer ticks and
allow an accurate determination of time down to the accuracy of the time
source in nanoseconds.
The architecture specific code typically provides gettimeofday and
settimeofday under Linux. The time interpolator provides both if an arch
defines CONFIG_TIME_INTERPOLATION. The arch still must set up timer tick
operations and call the necessary functions to advance the clock.
With the time interpolator a standardized interface exists for time
interpolation between ticks. The provided logic is highly scalable
and has been tested in SMP situations of up to 512 CPUs.
If CONFIG_TIME_INTERPOLATION is defined then the architecture specific code
(or the device drivers - like HPET) may register time interpolators.
These are typically defined in the following way:
static struct time_interpolator my_interpolator {
 .frequency = MY_FREQUENCY,
 .source = TIME_SOURCE_MMIO32,
 .shift = 8,  /* scaling for higher accuracy */
 .drift = -1,  /* Unknown drift */
 .jitter = 0  /* time source is stable */
};
void time_init(void)
{
 ....
 /* Initialization of the timer *.
 my_interpolator.address = &my_timer;
 register_time_interpolator(&my_interpolator);
 ....
}
For more details see include/linux/timex.h and kernel/timer.c.
Christoph Lameter <christoph@lameter.com>, October 31, 2004
 

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部