Ich habe die Konsole auf einer virtuellen Maschine aufgerufen, die ich heute verwalte, und wurde mit einigen Kernel-Nachrichten begrüßt:
[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
Das sind nur einige davon, sowohl 20 als auch 30 treten auf CPU 0 und 1 auf.
- VM ist Debian Jessie, BIOS-Boot ("QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014"; Kernel 3.16.0-4-amd64)
- Hypervisor ist libvirt / KVM, das unter Debian-Tests ausgeführt wird (derzeit Debians 4.7.0-1-amd64; qemu 1: 2.7 + dfsg-3).
- Hardware ist ein Opteron 6344 auf einem Supermicro H8SGL-F mit ECC-RAM mit aktiviertem Scrub.
Ich sehe keine NMI- oder EDAC-Fehler- / Warnmeldungen auf dem Host.
Irgendeine Idee, was diese NMI-Nachrichten beim Gast verursacht? Sind sie etwas, worüber sie sich Sorgen machen müssen?
( Kann mit NMI zusammenhängen, das aus einem unbekannten Grund empfangen wurde. 20 - Haben Sie einen seltsamen Energiesparmodus aktiviert? Aber das scheint Bare Metal zu sein.)
noapic apci=off
Antworten:
Ich hatte das gleiche Problem mit einem ähnlichen Setup:
Meine Lösung bestand darin, meine Gast-VM so zu wechseln, dass sie eine QEMU-emulierte CPU anstelle eines CPU-Passthrough verwendet. Dies beinhaltete das Entfernen der
<cpu mode='host-passthrough'/>
Zeile aus der Gastdefinitionsdatei.Update : Ich habe weitere Untersuchungen durchgeführt und die störenden Elemente befanden sich unter dem
clock
Element:Die eigentliche Lösung bestand darin, die drei
<timer>
Elemente zu entfernen , wonach<cpu mode='host-passthrough'/>
sie wieder aktiviert werden konnten.Der Vollständigkeit halber habe ich der verknüpften Frage eine ähnliche Antwort hinzugefügt .
quelle
Das Problem scheint zu sein, dass das Ende des Interrupts nicht richtig kommuniziert wird.
Stellen Sie für libvirt sicher, dass
eoi
aktiviert ist:In der Befehlszeile für KVM, die übersetzt wird
Dies scheint für uns mit
-M q35
Host-CPU-Passthrough und Standardkonfiguration ansonsten zu funktionieren (RTC-Interrupts in der Warteschlange, PIT-Interrupts gelöscht, HPET nicht verfügbar).quelle
Ich hatte das gleiche Problem auf
Debian 9
undQemu 2.8.1(Debian 1:2.8+dfsg-6+deb9u5)
.Ich habe es behoben, indem ich das Videokartenmodell von
virtio
bis ersetzt habecirrus
(oder Sie können versuchen, ein anderes Modell von derqemu
Manpage aus zu verwenden).quelle