ESXi-servers kunnen stoppen met een paars diagnostisch scherm (PSOD) vanwege MCE-fouten (Machine Check Exception). MCE-fouten zijn te wijten aan hardwareproblemen.
Het paarse diagnostische scherm van MCE geeft meerdere dingen weer. Hiervan is het MCi_STATUS register nuttig bij het opsporen van het probleem.
Registratiegegevens:
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 er meerdere MCE's dicht bij elkaar zijn opgetreden | 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, zijn de lage 16 bits van het MCi_STATUS register belangrijk. Deze bits duiden op een eenvoudige of samengestelde fout.
Optie 1: Automatisch gereedschap gebruiken
Optie 2: Handmatige stappen gebruiken
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.
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.
0 – Normal Filtering
1 – Corrected Filtering
Filteren betekent dat sommige of alle latere correcties op dit item in deze structuur niet worden geplaatst.
Geeft het type transactie aan:
00 - Instruction
01 - Data
10 - Generic
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)
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
00 - SRC - Local processor originated request 01 - RES - Local processor responded to request 10 - OBS - Local processor observed error as third party 11 - Generic
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
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
0000-1110 - CHN - Channel number
1111 - Channel not specified
Hier volgt een voorbeeld van het analyseren van een MCE paarse diagnostische schermafbeelding:
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
0001 0001 0110 0110
Vergelijk het met de samengestelde fouten. In dit geval lijkt dit een cachehiërarchiefout (type 4) te zijn.
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Conclusie: