VMware: Debuggen der ESXi-Maschinenprüfungsausnahme – violetter Diagnosebildschirm
Summary: So debuggen Sie den violetten Diagnosebildschirm (PSOD) der ESXi Machine Check Exception (MCE) anhand eines Beispiels.
Instructions
Beschreibung:
ESXi-Server werden möglicherweise aufgrund von MCE-Fehlern (Machine Check Exception) mit einem violetten Diagnosebildschirm (PSOD) beendet. MCE-Fehler sind auf Hardwareprobleme zurückzuführen.
Der violette MCE-Diagnosebildschirm zeigt mehrere Elemente an. Von diesen wird die MCi_STATUS Register ist beim Debuggen des Problems hilfreich.
Details zur Anmeldung:
- Die Datei
MCi_STATUSRegister besteht aus Informationen über den Fehler bei der Maschinenprüfung. - Das Register wird neben dem "
S:" Wie im folgenden Beispiel gezeigt:
MC: PCPU18 B:13 S:0xfe20004000011166 M:0x7246040086 A:0x38c989b100 5
Bits und ihre Bedeutung:
| 63 | 62 | 61 | 60 | 59 | 58 | 57 | 53-56 | 38-52 | 32-37 | 16-31 | 0-15 |
| VALID-Flag – Wenn festgelegt, sind die Informationen gültig. | OVERFLOW-Flag - Wenn diese Option festgelegt ist, kann dies darauf hinweisen, dass mehrere MCEs nahe beieinander aufgetreten sind. | UNC-Markierung: Wenn diese Option festgelegt ist, konnte die CPU den Fehler nicht beheben. | EN-Flag | MISCV-Flag - Wenn gesetzt, enthält das MISC-Register mehr Informationen. | ADDRV: Wenn festgelegt, enthält das ADDR-Register den Ort, an dem der Fehler aufgetreten ist. | PCC-Flag – Wenn diese Option festgelegt ist, bedeutet dies, dass der Prozessor möglicherweise beschädigt wurde. | Architektonisch, wenn Bit 11 gesetzt ist, sonst "andere Informationen". | Architektonisch, wenn Bit 10 gesetzt ist, sonst "andere Informationen". | Weitere Informationen | Modellspezifischer Fehlercode für CPU | Fehlercode der maschinellen Überprüfung |
Um den Fehler zu beheben, müssen die niedrigen 16 Bits des MCi_STATUS registrieren sind wichtig. Diese Bits weisen auf einen einfachen oder zusammengesetzten Fehler hin.
Möglichkeit 1: Verwenden des automatischen Tools
VMware Purple Diagnostic Screen (PSOD) Error Reader
Option 2: Verwenden manueller Schritte
- Einfache Fehler können schnell behoben werden
0000 0000 0000 0000 -- No Error reported to this bank of error-reporting registers. 0000 0000 0000 0001 -- Unclassified - Error has not been classified. 0000 0000 0000 0010 -- Parity error in internal microcode ROM. 0000 0000 0000 0011 -- External error-BINIT# from another processor caused this processor MCE. Happens only if BINIT# observation enabled during power on. 0000 0000 0000 0100 -- Functional redundancy check master/slave error. 0000 0000 0000 0101 -- Internal parity error. 0000 0000 0000 0110 -- SMM handler tried to execute outside the ranges specified by SMRR. 0000 0100 0000 0000 -- Internal timer error. 0000 1110 0000 1011 -- I/O error. 0000 01xx xxxx xxxx -- Internal unclassified error. Atleast one X must be equal to 1.
- Compound-Fehler
000F 0000 0000 11LL - Generic Cache Hierarchy error.
000F 0000 0001 TTLL - {TT}TLB{LL}_ERR. TLB errors.
000F 0000 1MMM CCCC - {MMM}_Channel{CCCC}_ERR - Memory controller errors.
000F 0001 RRRR TTLL - {TT}CACHE{LL}_{RRRR}_ERR - Cache Hierarchy errors.
000F 1PPT RRRR IILL - BUS{LL}_{PP}_{RRRR}_{II}_T_ERR - Bus and Interconnect errors.
- F – Formular-Flag
0 – Normal Filtering 1 – Corrected Filtering
Filtern bedeutet, dass einige oder alle nachträglichen Korrekturen an diesem Eintrag in dieser Struktur nicht gebucht werden.
- TT – Gilt für 2 und 4 oben.
Gibt die Art der Transaktion an:
00 - Instruction 01 - Data 10 - Generic
- LL: Gilt für 1, 2, 4 und 5 oben.
Dies gibt die Ebene in der Speicherhierarchie an, auf der der Fehler aufgetreten ist.
00 - Level 0 - L0 01 - Level 1 - L1 10 - Level 2 - L2 11 - Generic – LG (It is shown only when processor cannot determine the hierarchy level)
- RRRR – Zeigt die Art der Aktion im Zusammenhang mit dem Fehler an. Die Aktionen sind:
0000 - Generic Error - ERR 0001 - Generic Read - RD 0010 - Generic Write - WR 0011 - Data Read - DRD 0100 - Data Write - DWR 0101 - Instruction Fetch - IRD 0110 - Prefetch - PREFETCH 0111 - Eviction - EVICT 1000 - Snoop - SNOOP
- PP (Participation): Beschreibt die Rolle des lokalen Prozessors bei dem Fehler.
00 - SRC - Local processor originated request 01 - RES - Local processor responded to request 10 - OBS - Local processor observed error as third party 11 - Generic
- T (Timeout): 1 = Zeitüberschreitung bei Anforderung.
- II (Arbeitsspeicher oder I/O)
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
- Speicher-Controller-Fehler: Definiert durch MMM- und CCCC-Unterfelder oben
- MMM – Speicherfehler
000 - GEN - Generic undefined request 001 - RD - Memory read error 010 - WR - Memory write error 011 - AC - Address/Command error 100 - MS - Memory Scrubbing error 101-111 - Reserved
- CCCC - Kanal mit dem Fehler
0000-1110 - CHN - Channel number 1111 - Channel not specified
Hier ist ein Beispiel für die Analyse eines violetten MCE-Diagnose-Screenshots:
- Notieren Sie sich die
MCi_STATUSRegisterwert. Hier ist es:
0xfe20004000011166.
- Konvertieren Sie es in eine Binärdatei:
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
- Nehmen Sie die unteren 16 Bits der
MCi_STATUSregistrieren:
0001 0001 0110 0110
Vergleichen Sie es mit den zusammengesetzten Fehlern. In diesem Fall scheint es sich um einen Cachehierarchiefehler (Typ 4) zu handeln.
- Wenden Sie die Werte an:
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Fazit:
- Es sieht so aus, als ob der violette Diagnosebildschirm während eines Prefetch-Vorgangs für einige Daten im L2-Cache des Prozessors aufgetreten ist.
- Daher könnte es sich um ein Problem mit dem L2-Cache auf dem Prozessor handeln.
- Daher sollte zuerst die CPU ausgetauscht und dann überprüft werden, ob das Problem behoben ist. Falls das Problem erneut auftritt, kann die Hauptplatine ausgetauscht werden.