2012-12-25 62 views
3

問題 - 有一個間歇時鐘漂移(2秒)我的Linux系統上,所以一旦在一段時間的內核計時器線程得到執行2秒+超時時間多種硬件定時器

問題 - 有多個硬件時鐘源(TSC,HPET,ACPI_PM),是否有可能創建內核定時器線程,如果主時鐘源漂移,強制使用輔助時鐘源作爲後備時鐘。

+0

您是否試過讓系統使用ntp(更經常一點)來保持時間同步?漂移2秒需要多長時間? –

+0

回覆:「如果主時鐘源漂移」:它如何知道主時鐘源漂移? – ruakh

+1

是使用NTP並且時間同步,但即使是第一個clockdrift也會導致我的內核計時器線程錯過特定的HW看門狗。如果我可以使用另一個基於HW時鐘的計時器線程作爲備份,這可能是固定的 - 這是可能的..? –

回答

1

你所描述的聽起來不像時鐘漂移(系統誤差),而是像丟失的定時器中斷。如果您有另一塊硬件可以生成定時中斷(HPET,RTC,但不是TSC),則可以使用定時器或中斷處理程序(或處理程序)對時間敏感的處理,無論先發生哪種情況,只需要設計它們之間的某種同步。

如果您遇到真正的時鐘漂移,那麼當您的時鐘速度低於實時時,您可以嘗試估計它並在計劃定時器時進行補償。但是丟失的中斷是一個更嚴重的問題的標誌,解決根本原因是有意義的,這也可能會影響您的次要中斷源。