Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

Debuggen von ESXi Machine Check Exception (MCE) PSOD

Summary: So debuggen Sie den violetten Diagnosebildschirm (PSOD) der ESXi Machine Check Exception (MCE) anhand eines Beispiels.

This article applies to   This article does not apply to 

Instructions

Beschreibung:

ESXi-Server werden aufgrund von MCE-Fehlern (Machine Check Exception, Machine Check Exception) möglicherweise mit einem violetten Diagnosebildschirm (PSOD) beendet. MCE-Fehler sind auf Hardwareprobleme zurückzuführen.

Der violette MCE-Diagnosebildschirm zeigt mehrere Dinge an. Von diesen ist das MCi_STATUS Register beim Debuggen des Problems nützlich.

Details zur Anmeldung:

  • Das MCi_STATUS Register besteht aus Informationen über den Fehler bei der Maschinenprüfung.
  • Das Register wird neben dem "S:" angezeigt 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-Markierung: Wenn diese Option festgelegt ist, kann dies darauf hindeuten, 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, sind die niedrigen 16 Bit des MCi_STATUS Registers wichtig. Diese Bits weisen auf einen einfachen oder zusammengesetzten Fehler hin.

Option 1: Verwenden des automatischen Tools

Option 2: Verwenden manueller Schritte

  1. Einfache Fehler sind einfach zu 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.
     
  2. 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. 

      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:
Violetter MCE-Diagnosebildschirm
 

  1. Notieren Sie sich, dass der MCi_STATUS Registerwert 0xfe20004000011166 ist.
  2. Konvertieren Sie es in eine Binärdatei:
    1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
  3. Nehmen Sie die unteren 16 Bits des MCi_STATUS Registers:
    0001 0001 0110 0110

    Vergleichen Sie es mit den zusammengesetzten Fehlern. In diesem Fall scheint es sich um einen Cachehierarchiefehler (Typ 4) zu handeln.

  4. 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 sollten wir zuerst die CPU austauschen und prüfen, ob das Problem behoben ist. Falls das Problem erneut auftritt, können wir die Hauptplatine austauschen.


 

Affected Products

Virtualization Solutions, VMware ESXi

Products

Software, Analytics