Wie kann ich das CPU EDX-Register in libvirt / qemu einstellen?

551
Ben

Ich muss das CPU-EDX-Register in libvirt wie folgt einstellen: https://support.microsoft.com/de-de/help/2902739/stop-error-0x109-critical-structure-corruption-on-a-vmware-virtual -mac Ich kann jedoch weder für libvirt vm xml noch in der Datei eine Option finden/usr/share/libvirt/cpu_map.xml

Jede Hilfe wird geschätzt.

0
Ich bezweifle aufrichtig, dass Sie das EDX-Register einrichten müssen. Das auf dieser Webseite beschriebene Update ist spezifisch für VMware, die unter Windows ausgeführt wird. Es hat nichts mit Qemu zu tun. Jamie Hanrahan vor 6 Jahren 0
Nun, es scheint auf jeden Fall den gleichen BSOD-Fehler wie der angegebene Fix zu werfen. Seltsam Ben vor 6 Jahren 0
OK, aber CRITICAL_STRUCTURE_CORRUPTION kann sich auf etwa tausend verschiedene Datenstrukturen beziehen. Es ist auch nicht spezifisch für Umgebungen mit virtuellen Maschinen. Wenn Sie https://en.wikipedia.org/wiki/CPUID#EAX.3D80000001h:_Extended_Processor_Info_and_Feature_Bits überprüfen, werden Sie feststellen, dass diese Prozedur (unter der Annahme einer typischen Bit-Reihenfolge) die CPUID, die von den Gastbetriebssystemen angezeigt wird, dazu verpflichtet Die RDTSCP-Anweisung (Lesezeitstempelzähler und Prozessor-ID) ist nicht verfügbar. Wenn Sie keinen Grund zu der Annahme haben, dass Ihr BSOD etwas mit dieser Anweisung zu tun hat, gilt der beschriebene Fix nicht. Jamie Hanrahan vor 6 Jahren 0

1 Antwort auf die Frage

0
DanielB

Selbst wenn die gleiche Bluescreen-Fehlermeldung angezeigt wird, bin ich ziemlich skeptisch, dass der beschriebene WRT VMWare für KVM gilt. Im Support-Artikel geht es um einen bestimmten Fehler in einer bestimmten Version von VMWare, der wahrscheinlich nicht in KVM vorhanden ist. Wahrscheinlicher ist, dass es ein anderes Problem gibt, das dasselbe Endergebnis verursacht.

Wenn Sie es wirklich ausprobieren möchten, IIUC, ----:0---:----:----:----:----:----:----scheint der VMware-Wert eine binäre Zeichenfolge für den EDX-Registerwert zu sein. Dies entspricht einem Hex-Code 0x8000000. Entsprechend der libvirt CPU ID-Zuordnungsdatenbank sollte sich dies auf die Funktion rdtscp beziehen

<feature name='rdtscp'> <cpuid eax_in='0x80000001' edx='0x08000000'/> </feature> 

Ob Sie diese Funktion für Ihren Gast aktiviert haben oder nicht, hängt davon ab, ob <cpu>in Ihrem Gast-XML ein Modell konfiguriert ist. Vorausgesetzt, Sie haben ein CPU-Modell konfiguriert, können Sie diese Funktion daher deaktivieren:

<cpu> ... <feature name="rdtscp" policy="disable"/> ...  </cpu> 

Weitere Informationen finden Sie unter https://libvirt.org/formatdomain.html#elementsCPU