VMware : Débogage du PSOD ESXi MCE
Summary: Comment déboguer l’écran violet de diagnostic (PSOD) de l’exception de vérification de la machine (MCE) ESXi à l’aide d’un exemple.
Instructions
Les serveurs ESXi peuvent s’arrêter avec un écran de diagnostic violet (PSOD) en raison d’erreurs d’exception de vérification de la machine (MCE). Les erreurs MCE sont dues à des problèmes matériels.
L’écran de diagnostic MCE violet affiche plusieurs éléments. Parmi ceux-ci, le MCi_STATUS register est utile pour déboguer le problème.
Détails de l’enregistrement :
- La commande
MCi_STATUSLe registre contient des informations sur l’erreur de vérification de la machine. - Le registre s’affiche en regard de l’icône «
S:» Comme illustré dans l’exemple ci-dessous :
MC: PCPU18 B:13 S:0xfe20004000011166 M:0x7246040086 A:0x38c989b100 5
Les bits et leur signification :
| 63 | 62 | 61 | 60 | 59 | 58 | 57 | 53-56 | 38-52 | 32-37 | 16-31 | 0-15 |
| Balise VALID : si elle est définie, les informations sont valides. | Balise de dépassement : si elle est définie, elle peut indiquer que plusieurs MCE se sont produites à proximité les unes des autres. | Balise UNC : si elle est définie, le processeur n’a pas pu corriger l’erreur. | Drapeau EN | Balise MISCV : si elle est définie, le registre MISC contient plus d’informations. | ADDRV : s’il est défini, le registre ADDR contient l’endroit où l’erreur s’est produite. | Indicateur PCC : si cette option est définie, cela signifie que le processeur a peut-être été endommagé. | Architectural si le bit 11 est défini, sinon « autres informations ». | Architectural si le bit 10 est défini, sinon « autres informations ». | Autres informations | Code d’erreur spécifique au modèle pour le processeur | Code d’erreur de vérification de la machine |
Pour déboguer l’erreur, les 16 bits inférieurs de l’attribut MCi_STATUS sont importants. Ces bits indiquent une erreur simple ou composée.
Option 1 : Utilisation de l’outil automatique
Lecteur d’erreurs VMware Purple Diagnostic Screen (PSOD)
Option 2 : Utilisation des étapes manuelles
- Les erreurs simples sont rapides à déboguer
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.
- Erreurs combinées
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 - Balise de formulaire
0 – Normal Filtering 1 – Corrected Filtering
Le filtrage signifie qu’une partie ou la totalité des corrections ultérieures apportées à cette entrée dans cette structure ne sont pas publiées.
- TT : s’applique aux points 2 et 4 ci-dessus.
Indique le type de transaction :
00 - Instruction 01 - Data 10 - Generic
- LL : s’applique aux points 1, 2, 4 et 5 ci-dessus.
Cela indique le niveau de la hiérarchie de la mémoire où l’erreur s’est produite.
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 : indique le type d’action associé à l’erreur. Les actions sont les suivantes :
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) : décrit le rôle du processeur local dans l’erreur.
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 = expiration du délai de la demande.
- II (mémoire ou E/S)
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
- Erreurs de contrôleur de mémoire - Définies par les sous-champs MMM et CCCC ci-dessus
- 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 : canal présentant l’erreur
0000-1110 - CHN - Channel number 1111 - Channel not specified
Voici un exemple d’analyse d’une capture d’écran de diagnostic MCE violet :
- Notez le
MCi_STATUSenregistrer la valeur. Le voilà:
0xfe20004000011166.
- Convertissez-le en binaire :
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
- Prenez les 16 bits inférieurs de l’attribut
MCi_STATUSRegistre:
0001 0001 0110 0110
Comparez-le avec les erreurs composées. Dans ce cas, il semble s’agir d’une erreur de hiérarchie de cache (type 4).
- Appliquez les valeurs :
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Conclusion :
- Il semble que l’écran de diagnostic violet se soit produit pendant qu’il y avait une opération de prérécupération sur certaines données dans le cache L2 du processeur.
- Il peut donc s’agir d’un problème avec le cache N2 sur le processeur.
- Par conséquent, vous devez d’abord remplacer le processeur, puis vérifier si le problème est résolu. Si le problème se reproduit, la carte mère peut être remplacée.