內核在啟動過程中會根據既定的優先級選擇時鍾源。優先級的排序根據時鍾的精度與訪問速度。
 其中CPU中的TSC寄存器是精度最高(與CPU最高主頻等同),訪問速度最快(只需一條指令,一個時鍾周期)的時鍾源,因此內核優選TSC作為計時的時鍾源。其它的時鍾源,如HPET, ACPI-PM,PIT等則作為備選。
 但是,TSC不同與HPET等時鍾,它的頻率不是預知的。因此,內核必須在初始化過程中,利用HPET,PIT等始終來校准TSC的頻率。如果兩次校准結果偏差較大,則認為TSC是不穩定的,則使用其它時鍾源。並打印內核日志:Clocksource tsc unstable.
 正常來說,TSC的頻率很穩定且不受CPU調頻的影響(如果CPU支持constant-tsc)。內核不應該偵測到它是unstable的。但是,計算機系統中存在一種名為SMI(System Management Interrupt)的中斷,該中斷不可被操作系統感知和屏蔽。如果內核校准TSC頻率的計算過程quick_ pit_ calibrate ()被SMI中斷干擾,就會導致計算結果偏差較大(超過1%),結果是tsc基准頻率不准確。最后導致機器上的時間戳信息都不准確,可能偏慢或者偏快。
 當內核認為TSC unstable時,切換到HPET等時鍾,不會給你的系統帶來過大的影響。當然,時鍾精度或訪問時鍾的速度會受到影響。通過實驗測試,訪問HPET的時間開銷為訪問TSC時間開銷的7倍左右。如果您的系統無法忍受這些,可以嘗試以下解決方法: 在內核啟動時,加入啟動參數:tsc=reliable
