Linuxの起動が表示されるたびに、次のメッセージが表示されます。
クロックソースtsc不安定(デルタ= NNNNNNNN ns)
ここで、NNNNNNNNは非常に大きな数であり、正または負の場合があります。
このメッセージはどういう意味ですか?これについて心配する必要がありますか?
Linuxの起動が表示されるたびに、次のメッセージが表示されます。
クロックソースtsc不安定(デルタ= NNNNNNNN ns)
ここで、NNNNNNNNは非常に大きな数であり、正または負の場合があります。
このメッセージはどういう意味ですか?これについて心配する必要がありますか?
回答:
今日私は正直にこのメッセージを初めて見ましたが、それが実際に何を意味しているのか分かりません。
そうは言っても、タイムスタンプカウンターに関するWikipediaの記事を読みました(これはtsc
エラーメッセージのの意味です)。この記事では、第2段落でTSCの問題について述べています。
タイムスタンプカウンターは、最近まで、CPUタイミング情報を取得するための優れた高解像度、低オーバーヘッドの方法でした。マルチコア/ハイパースレッドCPU、複数のCPUを備えたシステム、および「休止状態」のオペレーティングシステムの登場により、TSCは正確な結果を提供することに依存することができなくなりました—考えられる欠陥を修正するために細心の注意が払われていない場合:ティックの速度と、すべてのコア(プロセッサ)の計時レジスタに同じ値があるかどうか 単一のマザーボード上の複数のCPUのタイムスタンプカウンターが同期されるという保証はありません。そのような場合、プログラマーは、コードを単一のCPUにロックすることによってのみ信頼できる結果を得ることができます。それでも、OSまたはBIOSによる省電力対策によりCPU速度が変化したり、システムが休止状態になってから再開したりする場合があります(タイムスタンプカウンターのリセット)。後者の場合、関連性を維持するには、カウンターを定期的に再調整する必要があります(アプリケーションで必要な時間分解能に従って)。
要するに、現代のシステムでは、TSCは正確に時間を測定する必要があります。そして、それがメッセージがあなたに伝えていることです。ご使用のシステムでは、TSCは安定したタイムソースではありません。
delta
指摘は、私が引き受ける、TSCの2ティックの間に報告された時間のデルタです。つまり、TSCがカウントアップするたびに1
、NNNNNNNNN
ナノ秒が経過します。したがって、通常はこの方法で非常に正確な時刻を維持できます。
Linuxカーネルは(ソースが安定しているかどうかを判断するために)この頻度を複数回チェックし、異なる結果を得ました。したがって、メッセージ。
それで、あなたは心配する必要がありますか?
正直わからない。私の理解では、この問題は、コア間でプロセスが「移動」される(すべてのコアが異なるTSC周波数を持つ可能性がある)か、またはコアがコア周波数を変更する(省電力など)ことによって発生します。
ほとんどの場合、カーネルがこの問題を検出し、それに応じて調整するため、メッセージが出力されるだけです。
そして、カーネルソース(arch/x86/kernel/tsc.c
)で読んだことから、私は自分の仮定に遠く離れているとは思わない。
メッセージが重大な状態を意味することを疑います。そして、それが重要であるなら、あなたが今までに知っているという仮定に基づいています。
tsc
指すと思います。それが役立つ場合。