私はDebian GNU/Linux 7.8(wheezy)を使用しています。今日、MATLABプログラムを実行しているときに、ターミナルにこのメッセージが表示されました。
Message from syslogd@sas21 at Jul 18 16:40:49 ...
kernel:[1747708.091929] Uhhuh. NMI received for unknown reason 20 on CPU 4.
Message from syslogd@sas21 at Jul 18 16:40:49 ...
kernel:[1747708.091932] Do you have a strange power saving mode enabled?
Message from syslogd@sas21 at Jul 18 16:40:49 ...
kernel:[1747708.091932] Dazed and confused, but trying to continue
その間にビープ音が聞こえたことも覚えています。
これは何を意味するのでしょうか?そして、私はさらに何をすべきですか?
問題は、End of Interruptが適切に通信されていないことです。
Libvirtの場合、eoi
が有効になっていることを確認してください:
<domain>
…
<features>
<apic eoi='on'/>
…
KVMのコマンドラインで
-cpu …,+kvm_pv_eoi
これは、-M q35
、ホストCPUパススルー、およびデフォルトの構成で機能するようです(RTC割り込みがキューに入れられ、PIT割り込みがドロップされ、HPTが利用できません)。
これはマスク不能割り込み(NMI)であり、通常はシステムのハードウェアイベントによってトリガーされます。この場合、特定のNMIが構成されていないように見え、NMIを受信しましたが、それをどうするかわからないため、単に無視します。
さらに何をすべきですか?
カーネル3.16.0-4-AMD64でDebian 8.6を実行しているKVM/QEMUホストで数日以来、同じ問題が発生しています。これは私のログの一部です:
Jan 01 13:07:42 debbi3 kernel: Uhhuh. NMI received for unknown reason 20 on CPU 0.
Jan 01 13:07:42 debbi3 kernel: Do you have a strange power saving mode enabled?
Jan 01 13:07:42 debbi3 kernel: Dazed and confused, but trying to continue
Jan 02 10:48:58 debbi3 kernel: Uhhuh. NMI received for unknown reason 30 on CPU 0.
Jan 02 10:48:58 debbi3 kernel: Do you have a strange power saving mode enabled?
Jan 02 10:48:58 debbi3 kernel: Dazed and confused, but trying to continue
これはBOINCのインストール後に開始されました(現在のタスクはCollatz予想です)。現在、BOINCがCPUの99%を取得することを許可しています。
したがって、これらのメッセージの原因についての私の推測は、CPUが飽和状態にあり、(ハードウェア)割り込みを適切に処理するための十分な時間が得られないことです。あなたの特定のケースでは、他の何らかのプロセスまたは外部の原因が原因である可能性があります。 YMMV。
たぶん、CPUが熱くなりすぎて小さなエラーが発生したり、いくつかの命令が失敗したりするかもしれませんが、これらの重要ではないエラーは、カーネルによって内部的に回復できます。
同様のメッセージを受け取りましたが、私の場合、GPUが熱くなりすぎていることがわかります。 PCで高解像度のライブストリームを見ていました。私はたまたまGPUがかなり古くて弱いことを知っているので、これは私のエラーログに表示されました:
Feb 15 10:39:14 kernel: [ 1708.477285] nouveau 0000:03:00.0: therm: temperature (86 C) went below the 'fanboost' threshold
Feb 15 10:39:16 kernel: [ 1710.452080] nouveau 0000:03:00.0: therm: temperature (90 C) hit the 'fanboost' threshold
Feb 15 10:39:21 kernel: [ 1714.926254] nouveau 0000:03:00.0: therm: temperature (86 C) went below the 'fanboost' threshold
Feb 15 10:39:23 kernel: [ 1717.261238] nouveau 0000:03:00.0: therm: temperature (90 C) hit the 'fanboost' threshold
Feb 15 10:39:23 kernel: [ 1717.535168] Uhhuh. NMI received for unknown reason 21 on CPU 0.
Feb 15 10:39:23 kernel: [ 1717.535172] Do you have a strange power saving mode enabled?
Feb 15 10:39:23 kernel: [ 1717.535173] Dazed and confused, but trying to continue
Feb 15 10:39:32 kernel: [ 1725.650454] nouveau 0000:03:00.0: therm: temperature (86 C) went below the 'fanboost' threshold
Feb 15 10:39:33 kernel: [ 1726.662936] nouveau 0000:03:00.0: therm: temperature (90 C) hit the 'fanboost' threshold
Feb 15 10:39:37 kernel: [ 1730.652335] nouveau 0000:03:00.0: therm: temperature (86 C) went below the 'fanboost' threshold
そしてもっとたくさん
PC-Q35ハードウェアタイプを使用して、Debian 9.0(Stretch)を実行しているKVM仮想マシンゲストでこの動作を確認しました。ホストはAMD Turionです。
以下を含む、いくつかの解決策がオンラインで提案されています(例: this thread を参照)。
<timer name='kvmclock' present='no'/>
ゲストへ)。私の場合、QEMUエミュレートされたCPUに切り替えることで問題が解決しました。これを行うには、VM XMLファイルから次の行を削除しました:<cpu mode='Host-passthrough'/>