Losing too many ticks!
本メッセージが出力された場合、
- プロセッサのクロック周波数が動的に変更されてプロセッサ内部のTSCレジスタのカウントアップタイミングが大きく変動した
- プロセッサが高負荷でタイマ割り込みを処理できない状態だった
- TSCレジスタの同期処理に何らかの問題が発生した
ことが疑われる。このため、PITではなくTSCレジスタを利用する必要がある場合は、以下の対策をおこなうことを検討する。
- プロセッサのクロック周波数を動的に変更する省電力機能(Intel社のSpeedStepテクノロジや、AMD社のPowerNow!テクノロジ等)を有効にしている場合は無効にする
- BIOSの(E)IDE/ATAドライブのIDE転送モードの設定を確認し、DMA(Direct Memory Access)転送が無効となっている場合には有効にする
- dmesgやシステムログにタイマ関連のエラーや警告が出力されている場合は、TSCレジスタの同期処理に問題が発生している可能性があるので、当該メッセージ出力時の対処をOSS Message Pedia等で調査して対応する
タイマ割り込みの処理が滞っている疑いがある。
本メッセージは、TSC(Time Stamp Counter)レジスタを使用(*1)しており、なおかつ、タイマ割り込みの処理が滞っていることが疑われる場合に出力される。本メッセージが出力された場合、カーネルはTSCレジスタの使用を断念して、精度の低いPIT(Programmable Interval Timer)タイマが強制的に使用されるようになる。
- (*1) 386アーキテクチャのプロセッサは内部にTSCレジスタを持つ。この値はプロセッサのクロック周波数と連動してカウントアップされる。カーネルは起動時にタイムソースとして利用するタイマを検索して、TSCレジスタよりも優先度が高いタイマを利用できない (⇒CONFIG_X86_CYCLONE_TIMERとCONFIG_HPET_TIMERが無効であるか、有効であってもタイマの初期化に失敗した) 場合にTSCレジスタをタイムソースとして利用する。