VMの未知のNMIにより20と30が発生する

VMの未知のNMIにより20と30が発生する

今日管理している仮想マシンでコンソールを開き、いくつかのカーネルメッセージを受け取りました。

[5912557.130943] Uhhuh. NMI received for unknown reason 20 on CPU 0.
[5912557.131115] Do you have a strange power saving mode enabled?
[5912557.131287] Dazed and confused, but trying to continue
[6064281.393568] Uhhuh. NMI received for unknown reason 30 on CPU 1.
[6064281.393888] Do you have a strange power saving mode enabled?
[6064281.394235] Dazed and confused, but trying to continue

これはわずかな部分であり、20と30の両方がCPU 0と1で発生しました。

  • VMはDebian Jessie、BIOSブートです(「QEMU標準PC(i440FX + PIIX、1996)、BIOS 1.9.3-20161025_171302-gandalf 04/01/2014」;カーネル3.16.0-4-amd64
  • ハイパーバイザーは、Debianテスト(現在のDebian 4.7.0-1-amd64; qemu 1:2.7 + dfsg-3)で実行されるlibvirt / KVMです。
  • ハードウェアはOpteron 6344です。スーパーマイクロH8SGL-FECC RAMとスクラブが有効になっています。

ホストにNMIまたはEDACエラー/警告メッセージが表示されません。

訪問者にこれらのNMIメッセージが発生する原因は何ですか?その人が気になることはありますか?

(一緒にいるかもしれません未知の理由でNMI 20を受け取りました。奇妙なバッテリー節約モードを有効にしましたか?しかし、これはベアメタルのようです。)

ベストアンサー1

同様の設定で同じ問題が発生しました。

  1. AMD CPU(Intel CPUで同じ問題について報告したことがありますが、Intel CPUで実行されたハイパーバイザーのうちCPUパススルーが有効になっていても、この問題は発生しませんでした)。
  2. Debian、ハイパーバイザー、およびゲストのカーネル4.x(私の場合は両方とも4.9.0-4-amd64)。

私の解決策は、QEMUを使用してCPUパススルーの代わりにCPUをエミュレートするようにゲストVMを切り替えることでした。これを行うには、<cpu mode='host-passthrough'/>ゲスト定義ファイルからその行を削除する必要があります。

アップデート1:追加調査をしましたが、問題となる要素はclock次のとおりです。

<clock offset='utc'>
  <timer name='rtc' tickpolicy='catchup'/>
  <timer name='pit' tickpolicy='delay'/>
  <timer name='hpet' present='no'/>
</clock>

実際の解決策は、これら3つの<timer>要素を削除し<cpu mode='host-passthrough'/>て再度有効にすることです。

完全性のために追加しました。同様の答え到着リンクの問題

アップデート2 主演サイモンリヒーター言及する、私が削除した設定はデフォルト設定でしたので、この修正はすべての人には適用されない可能性があります。それから彼の解決策に従うべきです。

おすすめ記事