问题 - 在我的 Linux 系统上存在间歇性时钟漂移(2 秒),因此内核计时器线程偶尔会执行 2 秒 + 超时时间
问题 - 有多个硬件时钟源(TSC、HPET、ACPI_PM),如果主时钟源漂移,是否可以创建强制使用辅助时钟源作为回退的内核定时器线程......?
最佳答案
您所描述的听起来不像是时钟漂移(系统错误),而是像丢失的定时器中断。如果您有另一个可以生成定时中断的硬件(HPET、RTC,但不是 TSC),您可以从定时器或中断处理程序(或多个处理程序)进行时间敏感处理,以先发生者为准,您只需要在它们之间设计某种同步。
如果您遇到真正的时钟漂移,当您的时钟速度低于实时速度时,您可以尝试估计它并在安排计时器时进行补偿。但是丢失中断是一个更严重问题的迹象,解决根本原因是有意义的,这也可能影响您的辅助中断源。
关于linux - Linux 中的多个硬件定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032986/