web-dev-qa-db-ja.com

エラータのためTSC_DEADLINEが無効になりました

コンピュータを診断のために製造元に送り、ビデオ出力の問題を解決しました。彼らはBIOSを更新しました。それ以来、私は

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)

以前にインストールされたmicrocodeまたはucodeパッケージがありませんでした。このメッセージを受け取るために使用されませんでした。

製造元に問い合わせたところ、「チケット番号は覚えていませんが、BIOSを更新したのではないか」と回答していたため、あまり役に立ちませんでした。

起動して動作しますが、TSC_DEADLINEは重要ですか、それとも役に立ちますか。

それについて私が見つけることができる唯一のものはこれです: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

しかし、それはVirtualBoxにのみ当てはまるようで、いずれにせよ私はすでにカーネル4.14を実行しているので、そのコミットが私の問題を修正するかどうかで、それはすでに持っていると思います。

ryan@pocketwee:~$ uname -a
Linux pocketwee 4.14.0-1-AMD64 #1 SMP Debian 4.14.2-1 (2017-11-30) x86_64 GNU/Linux
15
RML

このメッセージの突然の出現はかなり奇妙です。以前のファームウェアが行っていたのに対して、更新されたファームウェアはCPUのマイクロコードをアップグレードしなくなったことを示しています。奇妙な...(別の考えられるシナリオは、CPUがもともとTSC期限をまったくサポートしていなかったことで、ファームウェアがマイクロコードをTSC期限のサポートを宣言するバージョンですが、エラッタを使用不可にしています。)

いずれにしても、TSCの期限サポートは便利ですが、重要ではありません。カーネルには、計時と時限イベント処理のための精巧なフレームワークがあります。 TSCの期限は、イベント処理の1つの可能な実装ですが、それだけではありません。それをサポートするCPUでは、非常に効率的であるため、これを使用するのは良いことです。

マイクロコードをアップグレードしてTSC期限サポートを再度有効にするには、Debianのcontribおよびnon-freeリポジトリからマイクロコード更新パッケージをインストールできます。これを行うには、/etc/apt/sources.listを編集して、Debianリポジトリ定義にmaincontrib、およびnon-free;が含まれるようにします。次に実行します

Sudo apt update

に続く

Sudo apt install intel-microcode

(Intel CPUの場合)または

Sudo apt install AMD64-microcode

(AMD CPU用)。それが完了したら、再起動すると、マイクロコードが更新されます。 TSC期限サポートが再度有効になっている場合、起動時にエラーメッセージは表示されず、tsc_deadline_timerflags行に/proc/cpuinfoが表示されます。

Debian wikiには マイクロコードの更新に関する詳細情報 があります。

17
Stephen Kitt