在支持时间戳计数器( TSC )处理器中,Linux提供了使用TSC的高精度计时器选项。据我所知,TSC是一个可以读取的寄存器,但不提供以配置的速率中断CPU的选项。因此,对于定时器,Linux中的中断生成仍然必须依赖于HZ值通常设置为1000或250的I/ or (在x86上)。即使TSC提供微秒粒度的时间戳,根据HZ值的不同,计时器/调度粒度仍然是4ms或1ms。这种理解是正确的吗?或者,是否有使用TSC提高计时器粒度的选项?
linux内核中的每个定时器都有一个名为"real task_struct“的字段,它是一个高精度定时器( struct hrtimer )。当我们使用setitimer设置计时器时,它将进程中的“实际计时器”设置为按给定值过期。当它到期时,调用名为it_real_fn的函数。这是source code in Linux kernel 2.6.39.4 /*
* The timer is automagically restarted, when interval !然而,如果我们在