Benötige ich CPU-Mikrocode (oder irgendeinen anderen Mikrocode) in einer virtuellen QEMU/KVM-Maschine?

Benötige ich CPU-Mikrocode (oder irgendeinen anderen Mikrocode) in einer virtuellen QEMU/KVM-Maschine?

Eine CPU in einer virtuellen Maschine ist nur virtuell, daher würde ich davon ausgehen, dass der Microcode des Herstellers nicht geladen werden muss. Dasselbe gilt vermutlich auch für GPUs.

Ist das richtig? Gibt es Risiken oder Nachteile bei der Verwendung oder Nichtverwendung in einer KVM/QEMU-VM?

Ich spreche von der Mikrocode-Aktualisierung, die früh im Bootvorgang der Linux-VM stattfindet.

Die CPUs von Host und VM sind gleich. Der Host lädt beim Booten den neuesten Mikrocode.

Eine Antwort mit Referenzen wäre willkommen, da ich selbst bereits eine fundierte Vermutung angestellt habe.

Antwort1

Ich bin mir nicht sicher, ob es einen Verweis in der Dokumentation gibt, aber Paolo Bonzini (der KVM-Betreuer) sagte diesauf der qemu-develMailingliste:

Der Gast hat keinen eigenen Mikrocode, aber Sie müssen den Mikrocode im Host aktualisieren. Sie müssen auch den Kernel, QEMU und libvirt aktualisieren, wenn Sie diese verwenden.

und dann,insbesondere im Hinblick auf die Aktualisierung des Mikrocodes im Gast,

Nein, das hat keine Auswirkungen.

Antwort2

Die CPU wird nicht visualisiert. Naja, nicht viel. Naja, viel. Nun, es hängt von Ihrem Standpunkt ab. Im Benutzermodus verwendet sie einfach die Host-CPU. Im Kernelmodus kann sie emuliert oder visualisiert werden (je nach CPU-Modell der Virtualisierungssoftware usw.). Da sie die Host-CPU verwendet, muss der Host den Mikrocode aktualisieren.

Ich würde hoffen, dass der Gast keinen Zugriff darauf hat. Vielleicht wird ihm gesagt, dass er es nicht tun kann. Oder vielleicht wird ihm gesagt, dass es gelungen ist. Aber er darf es nicht ändern dürfen, da dies den Gastgeber und andere Gäste beeinträchtigen würde.

verwandte Informationen