「クロックソースtsc不安定」とはどういう意味ですか?


10

Linuxの起動が表示されるたびに、次のメッセージが表示されます。

クロックソースtsc不安定(デルタ= NNNNNNNN ns)

ここで、NNNNNNNNは非常に大きな数であり、正または負の場合があります。

このメッセージはどういう意味ですか?これについて心配する必要がありますか?


タイムスタンプカウンターをtsc指すと思います。それが役立つ場合。
Der Hochstapler

また、このメッセージについてオンラインで見つけたものを考えると、このメッセージは物理マシンと仮想マシンのどちらに表示されますか?それは関連しているようです。
Der Hochstapler

物理的および仮想的。Linuxを起動すると、いくつかの異なるシステムでこのメッセージが表示されます。
bwDraco

(オプションとして)/var/log/messageオプションに「acpi = off」を追加したときに、このメッセージが表示されました。削除して再起動すると、メッセージが消えました。CentOS 6とカーネル:.6.32-279.19.1.el6.x86_64/etc/grub.confkernel=

回答:


8

今日私は正直にこのメッセージを初めて見ましたが、それが実際に何を意味しているのか分かりません。

そうは言っても、タイムスタンプカウンターに関するWikipediaの記事を読みました(これはtscエラーメッセージのの意味です)。この記事では、第2段落でTSCの問題について述べています。

タイムスタンプカウンターは、最近まで、CPUタイミング情報を取得するための優れた高解像度、低オーバーヘッドの方法でした。マルチコア/ハイパースレッドCPU、複数のCPUを備えたシステム、および「休止状態」のオペレーティングシステムの登場により、TSCは正確な結果を提供することに依存することができなくなりました—考えられる欠陥を修正するために細心の注意が払われていない場合:ティックの速度と、すべてのコア(プロセッサ)の計時レジスタに同じ値があるかどうか 単一のマザーボード上の複数のCPUのタイムスタンプカウンターが同期されるという保証はありません。そのような場合、プログラマーは、コードを単一のCPUにロックすることによってのみ信頼できる結果を得ることができます。それでも、OSまたはBIOSによる省電力対策によりCPU速度が変化したり、システムが休止状態になってから再開したりする場合があります(タイムスタンプカウンターのリセット)。後者の場合、関連性を維持するには、カウンターを定期的に再調整する必要があります(アプリケーションで必要な時間分解能に従って)。

要するに、現代のシステムでは、TSCは正確に時間を測定する必要があります。そして、それがメッセージがあなたに伝えていることです。ご使用のシステムでは、TSCは安定したタイムソースではありません。

delta指摘は、私が引き受ける、TSCの2ティックの間に報告された時間のデルタです。つまり、TSCがカウントアップするたびに1NNNNNNNNNナノ秒が経過します。したがって、通常はこの方法で非常に正確な時刻を維持できます。

Linuxカーネルは(ソースが安定しているかどうかを判断するために)この頻度を複数回チェックし、異なる結果を得ました。したがって、メッセージ。


それで、あなたは心配する必要がありますか?
正直わからない。私の理解では、この問題は、コア間でプロセスが「移動」される(すべてのコアが異なるTSC周波数を持つ可能性がある)か、またはコアがコア周波数を変更する(省電力など)ことによって発生します。

ほとんどの場合、カーネルがこの問題を検出し、それに応じて調整するため、メッセージが出力されるだけです。

そして、カーネルソース(arch/x86/kernel/tsc.c)で読んだことから、私は自分の仮定に遠く離れているとは思わない。

メッセージが重大な状態を意味することを疑います。そして、それが重要であるなら、あなたが今までに知っているという仮定に基づいています。


2
同じ記事から引用すると、一部の最新のCPUにも一定のタイムスタンプカウンターが用意されています。最近のIntelプロセッサーには、一定速度のTSC(Linuxの/ proc / cpuinfoのconstant_tscフラグで識別される)が含まれています。これらのプロセッサでは、TSCは実際のCPU実行速度に関係なく、プロセッサの最大速度で読み取ります。
scai

tscの代わりにhpetを使用することをお勧めしますか?
CMCDragonkai 2014

1
情報を追加したいだけです。今日、私は私たちのスーパーマイクロサーバーの1つでこの問題に直面しました。OSはRHEL 6.5であり、同じメッセージが表示されます。このサーバーは現在、カタツムリのペースでクロールしています。1時間経ちましたが、ブートはまだ完了していません。私の次のステップは、カウンターを変更し、レスキューモードでgrub.confファイルに情報を追加することです。シングルユーザーモードも機能しないため
OmiPenguin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.