VMware: Foutopsporing bij ESXi machinecontrole Uitzondering Paars diagnostisch scherm
Summary: Fouten opsporen in het paarse diagnostische scherm (PSOD) van ESXi Machine Check Exception (MCE) met een voorbeeld.
Instructions
Beschrijving:
ESXi-servers kunnen stoppen met een paars diagnostisch scherm (PSOD) als gevolg van MCE-fouten (Machine Check Exception). MCE-fouten zijn te wijten aan hardwareproblemen.
Het paarse diagnostische scherm van MCE geeft meerdere items weer. Hiervan zijn de MCi_STATUS Registreren is nuttig bij het opsporen van het probleem.
Registratiegegevens:
- De
MCi_STATUSRegister bestaat uit informatie over de machinecontrolefout. - Het register wordt weergegeven naast de "
S:" Zoals weergegeven in het onderstaande voorbeeld:
MC: PCPU18 B:13 S:0xfe20004000011166 M:0x7246040086 A:0x38c989b100 5
Bits en hun betekenis:
| 63 | 62 | 61 | 60 | 59 | 58 | 57 | 53-56 | 38-52 | 32-37 | 16-31 | 0-15 |
| VALID flag - Indien ingesteld, is de informatie geldig. | OVERFLOW-vlag - Indien ingesteld, kan dit erop wijzen dat meerdere MCE's zich dicht bij elkaar hebben voorgedaan. | UNC-vlag: indien ingesteld, kan de CPU de fout niet corrigeren. | EN vlag | MISCV-markering - Indien ingesteld, bevat het MISC-register meer informatie. | ADDRV - Indien ingesteld, bevat het ADDR-register de plaats waar de fout is opgetreden. | PCC-vlag - Indien ingesteld, betekent dit dat de processor mogelijk beschadigd is. | Architecturaal als bit 11 is ingesteld, anders "andere informatie". | Architecturaal als bit 10 is ingesteld, anders "andere informatie". | Overige informatie | Modelspecifieke foutcode voor CPU | Foutcode machinecontrole |
Om de fout te debuggen, worden de lage 16 bits van de MCi_STATUS registreren zijn belangrijk. Deze bits duiden op een eenvoudige of samengestelde fout.
Optie 1: Automatisch gereedschap gebruiken
VMware Purple Diagnostic Screen (PSOD) Error Reader
Optie 2: Handmatige stappen gebruiken
- Eenvoudige fouten zijn snel te debuggen
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.
- Samengestelde fouten
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 - Formulier vlag
0 – Normal Filtering 1 – Corrected Filtering
Filteren betekent dat sommige of alle latere correcties op dit item in deze structuur niet worden geplaatst.
- TT - Van toepassing op 2 en 4 hierboven.
Geeft het type transactie aan:
00 - Instruction 01 - Data 10 - Generic
- LL - Van toepassing op 1, 2, 4 en 5 hierboven.
Dit geeft het niveau in de geheugenhiërarchie aan waar de fout is opgetreden.
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 - Geeft het type actie aan dat aan de fout is gekoppeld. De acties zijn:
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): beschrijft de rol van de lokale processor bij de fout.
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 (time-out) - 1 = Time-out aanvraag.
- II (geheugen of I/O)
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
- Fouten met de geheugencontroller - gedefinieerd door de bovenstaande MMM- en CCCC-subvelden
- MMM - Memory error
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 - Channel met de fout
0000-1110 - CHN - Channel number 1111 - Channel not specified
Hier volgt een voorbeeld van het analyseren van een MCE paarse diagnostische schermafbeelding:
- Noteer de
MCi_STATUSRegistreer waarde. Hier is het:
0xfe20004000011166.
- Converteer het naar binair:
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
- Neem de onderste 16 bits van de
MCi_STATUSregistreren:
0001 0001 0110 0110
Vergelijk het met de samengestelde fouten. In dit geval lijkt dit een cachehiërarchiefout (type 4) te zijn.
- Pas de waarden toe:
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Conclusie:
- Het lijkt erop dat het paarse diagnostische scherm is opgetreden tijdens een prefetch-bewerking voor bepaalde data in de L2-cache van de processor.
- Dit kan dus een probleem zijn met de L2-cache op de processor.
- Daarom moet eerst de CPU worden vervangen en daarna moet worden gecontroleerd of het probleem is opgelost. Mocht het probleem zich opnieuw voordoen, dan kan het moederbord worden vervangen.