クロックソースを変更するとどのような影響がありますか?

クロックソースを変更するとどのような影響がありますか?

出力には、cat /sys/devices/system/clocksource/clocksource0/available_clocksource使用可能なハードウェアクロックが一覧表示されます。

目立つ違いなしに時計を変えました。 sudo /bin/sh -c 'echo acpi_pm > current_clocksource'

ハードウェアの時計を変更すると、実際の効果は何ですか?利用可能な時計(または他の目に見える変形)の解像度を確認する方法はありますか?

ベストアンサー1

まず、カーネルはCPUによって保存され、非常に高速なので(RDTSCとEDX:EAXを読む)、自動的に最良のもの、通常利用可能な場合はTSCを選択します。

しかし、これは必ずしもそうではありません。当初は、SMPシステムの多くが複数の独立したCPUで構築されている場合、CPUができるだけ「同じ」(モデル、速度、およびステッピングが完全に一致する)ことが非常に重要でした。しかし、それにもかかわらず、時には1つが他のものよりはるかに速いので、その時のTSCカウンターは「不安定」です。これがまさにこれを変更(または「notsc」カーネルパラメータを使用して無効にする)が許可される理由です。これらの制限にもかかわらず、TSCはまだ最高のソースですが、カーネルはマルチコアシステムで1つのCPUにのみ依存するように注意する必要があります。 (カウンタリセット)とCPU周波数スケーリング(一部のCPUモデルのTSCに影響を与えます)

SMPの初期には、一部の人々は異なる速度のCPU(新しいBIG.littleアーキテクチャに似ています)を使用してシステムを構築したが、これはタイミングの世界に大きな問題を引き起こしました。

どの解像度を持っているかを確認する方法はクロックゲット()例がありますか?ここ

いくつかの追加リンクがあります:公式カーネル文書(このディレクトリには別の興味深いファイルがあります)ChromebookでTSCを再同期するさまざまなクロックソースを使用したいくつかのベンチマーク。

簡単に言えば、クロックソースを変更するときにユーザー空間で目に見える変化があってはなりません。ただ速度低下だけがあるだけです。一日の時間を取得します()

おすすめ記事