Knowledge Base

The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides
 
Search the VMware Knowledge Base (KB)   View by Article ID
 

Decodificación del error: Machine check Exception (MCE), después de una pantalla de error color púrpura (1036039)

Symptoms

Renuncia: Este artículo es una traducción de "Decoding Machine Check Exception (MCE) output after a purple screen error" (1005184). Los artículos han sido traducidos en Español basados en el mejor esfuerzo. Sin embargo, el contenido localizado o específico puede quedar desactualizado. Para revisar el contenido más reciente, por favor consulte el artículo en Inglés.

  • Aparece una pantalla de diagnóstico color púrpura. Reportando una falla de tipo "Machine Check Exception" (MCE).
  • La pantalla  color púrpura muestra el siguiente mensaje:

    Machine Check Exception: Unable to continue

  • Al extraer los mensajes del registro Log (core dump), se tiene un mensaje similar a:

    ALERT: MCE: 171: Machine Check Exception: Bank 5, Status b200001806000e0f

  • El sistema se detiene mostrando una pantalla color púrpura similar a esta:

     

Resolution


Este artículo contiene las siguientes secciones:

Qué es: Machine-Check Exception (MCE)?

La arquitectura de chequeo de máquina "Machine-Check", es un mecanismo dentro de la CPU para detectar y reportar problemas de hardware. Cuando se detecta un problema, se lanza un error Machine-Check Exception (#MC). Si acompañado con el error de máquina se despliega una pantalla de diagnóstico color púrpura, entonces el problema es causado por el hardware. No existe otra forma de que se presente un error de chequeo de máquina "Machine-check Exception".

En el caso que el sistema falle y presente la pantalla de diagnóstico color púrpura, haga una captura de la imagen en pantalla, luego reinicie el servidor y contacte su proveedor de hardware. Mientras tanto, la información capturada referente a la falla propiamente dicha , puede ser decodificada para tener una idea más precisa de lo que está ocurriendo.

Entendiendo la arquitectura del chequeo de máquina: Machine-Check Architecture

Las CPU's recientes de Intel y AMD tienen implementada la arquitectura de chequeo de máquina: Machine-check que detecta y reporta errores de hardware. Dentro de los errores detectados y reportados se encuentran, errores del Bus de datos, errores de memoria RAM (ECC y Paridad) y algunos otros (cache, TLB, etc.). Existe un conjunto de registros específicos al modelo llamados: model-specific registers (MSRs), usados para configurar y reportar los errores.

Hay tres (3) registros globales o generales y cuatro (4) o cinco (5) grupos de bancos de registros. Cada banco de registros tiene cuatro (4) registros. Cada banco de reporte de errores está asociado con una unidad o grupo de unidades específicas de hardware.

Los registros globales o generales son los siguientes:
  • MCG_CAP – Registro de solo lectura (read-only) que suministra información sobre la implementación de la arquitectura de chequeo de máquina: machine-check.
  • MCG_CTL – Registro que controla el reporte de los fallos derivados del chequeo de máquina: machine-check exceptions.
  • MCG_STATUS – Registro que reporta cuando ocurre una falla del tipo machine-check exception.

Los registros incluidos en un banco de registros son:
  • MCi_CTL – Registro controlador de los reportes del banco.
  • MCi_STATUS – Registro que contiene información sobre el error de chequeo de máquina, denominado como: machine-check exception.
  • MCi_ADDR – Dirección de memoria del error (si se considera válido).
  • MCi_MISC – Registro de descripción adicional del error de chequeo de máquina (si se considera válido).

Nota: En el caso del banco 3, el registro de status es conocido como MC3_STATUS.


Si el error ocurre en un procesador AMD, los bancos de registros tienen las siguientes funciones:
  • Bank 0 – Data Cache.
  • Bank 1 – Instruction Cache.
  • Bank 2 – Bus Unit.
  • Bank 3 – Load Store Unit.
  • Bank 4 – Northbridge and DRAM.

 

Decodificando el error: Machine-Check Exeption (MCE)

Extraiga el registro de eventos del archivo Log vmkernel-zdump generado durante la falla en la que se mostró la pantalla color púrpura. Para más información, vea el artículo: Extracting the log file after an ESX or ESXi host fails with a purple screen (1006796).

Esa muestra del registro Log indica que ha ocurrido una falla o Machine-check Exception. También entrega los detalles reportados por el sistema.

Los servidores VMware ESX y ESXi 4.1 suministran información adicional del error MCE en la pantalla púrpura y en los registros de eventos log, como se muestra a continuación:

VMware ESXi 4.1.0 [Releasebuild-260247 X86_64] Hardware (Machine) Error: Cache Hierarchy: Level 2 Instruction Cache InstructionFetch Error. PCPU3 in world 5333:vpxa
cr0=0x80010031 cr2=0x7d150000 cr3=0x4e7000 cr4=0x768
frame=0x417f826afcd8 ip=0x41802c469a80 err=18 rflags=0x202 rax=0x1d1b97b6560 rbx=0x418040c00000 rcx=0xa rdx=0x1d100000000 rbp=0x417f826afde8 rsi=0x0 rdi=0x0
r8=0x41802c7304d0 r9=0x41802c7304d0
r10=0x58 r11=0x1 r12=0x1d1b97b665b
r13=0x1d1b97b4385 r14=0x3ff r15=0x4100a3e634b0 pcpu:0 world:5345 name:"vpxa" (U)
pcpu:1 world:4415 name:"busybox" (U)
pcpu:2 world:5352 name:"vpxa" (U)
pcpu:3 world:5333 name:"vpxa" (U)
pcpu:4 world:5510 name:"vpxa" (U)
pcpu:5 world:5508 name:"vpxa" (U)
pcpu:6 world:5506 name:"vpxa" (U)
pcpu:7 world:5507 name:"vpxa" (U)
@BlueScreen: Hardware (Machine) Error: Cache Hierarchy: Level 2 Instruction Cache InstructionFetch Error. PCPU3 in world 5333:vpxa Code start: 0x41802c400000 VMK
uptime: 0:00:13:00.816
0x417f826afde8:[0x41802c469a80]SP_WaitLock@vmkernel:nover+0xc3 stack: 0x14d5
0x417f826afe68:[0x41802c4ca4f5]World_WaitInt@vmkernel:nover+0x1b4 stack: 0x4f6512b0a 0x417f826afec8:[0x41802c590a14]LinuxThread_Futex@vmkernel:nover+0x12f
stack: 0xca
0x417f826aff18:[0x41802c564dc5]User_LinuxSyscallHandler@vmkernel:nover+0xf8 stack: 0xffdbaa90
0x417f826aff28:[0x41802c4da747]gate_entry@vmkernel:nover+0x46 stack: 0x0 FSbase:0x0 GSbase:0x418040c00000 kernelGSbase:0xffdbdb10
MC:PCPU4 B:6 S:0xbe00000000080152 M:0x20e1201 A:0x2408632f00 4
MC:PCPU4: 1 hardware errors seen since boot (0 corrected by hardware)
PCPU fam:6 model:26 step:5 type:2 name:Intel(R) Xeon(R) CPU E5506 @ 2.13GHz

En este ejemplo, la decodificación ya ha sido realizada para usted, indicando la falla de hardware y reportando el MCE, resaltado en rojo se tienen el número del banco y los registros misceláneo, de status y de direcciones. Como es posible que usted tenga que decodificar y analizar los datos por usted mismo, el proceso para versiones anteriores de ESX y la información en los próximos pasos, sigue siendo útil.

Los servidores VMware ESX entregan información adicional del error MCE similar a la mostrada arriba, dentro de la pantalla color púrpura y en el archivo log de eventos del Kernel de Vmware ( vmkernel logs).

0:00:28:43.588 cpu0:1077)ALERT: MCE: 578: Machine Check Exception
0:00:28:43.588 cpu0:1077)ALERT: MCE: 169: Machine Check Exception: General Status 0000000000000004
0:00:28:43.588 cpu0:1077)ALERT: MCE: 193: Machine Check Exception: Bank 0, Status be0000001008081f

En este segundo ejemplo podemos ver que el error MCE ha ocurrido en la CPU 0 y que hay información dentro del registro de estado general ( General status Reg.) y del registro de estado del banco 0 ( Bank 0 Status Reg.).
El registro de estado general es conocido como registro MCG_STATUS y el registro de estado en el banco 0 como MC0_STATUS. Las claves para descifrar los mensajes del log con los registros pertenecientes a la arquitectura de chequeo de máquina "Machine-check", están resumidos aquí.

De los registros globales, el log de eventos solo reporta el registro de estado. Este registro es mostrado como el registro general de estado y es denominado Global Status Register ( MCG_STATUS). En cuanto a los registros de los bancos, el log muestra a cual banco de registros se refiere y luego a cual registro. Por lo tanto el mensaje Bank 0, Status, se refiere al registro de estado del banco 0 ( MC0_Status). En este artículo describimos los registros como MCi_Status, donde la ien el nombre, debe ser cambiada por el número del banco reportado.

Nota: En VMware ESX 4.0 incorpora información adicional en la pantalla púrpura de diagnóstico. Cuando ESX experimenta un error MCE, intenta decodificar el error y mostrar la interpretación en pantalla. La información presentada es similar a la siguiente:
MCE: 889: MCE on cpu1 bank5: Status:0xb200001080200e0f Misc:0x0: Valid.UC.Err enabled.PC Corrupt
Para determinar el significado de este evento y trabajar hacia la solución, consulte su proveedor de hardware.


Decodificación del registro de estado global (Global/General Status register) - MCG_STATUS

El registro de estado global contiene información simple para indicar si ha ocurrido una falla MCE. El registro contiene los siguientes bits:


Los bits representados son los siguientes:
Bits 63 > 3 – Reservados.
Bit 2 – MCIP – Machine check en progreso.
Bit 1 – EIPV – Bandera de Error IP válido.
Bit 0 – RIPV – Bandera de Reinicio IP válido.

El bit más importante aquí es el Bit 2, el bit de "Machine check en progreso".

En ese ejemplo, vemos:
0:00:28:43.588 cpu0:1077)ALERT: MCE: 169: Machine Check Exception: General Status 0000000000000004

El valor de MCG_STATUS es 0000000000000004. Si convierte este número a binario, se tiene 0100. Por lo tanto Bit 2 está habilitado e indica: Machine-check en progreso.


Decodificación de registros del estado de los bancos (MCA únicamente)

Los registros de estado de los bancos, tienen el formato mostrado en la gráfica siguiente. Este registro contiene más información de la falla que causa el error: Machine-Check
Exception.


Los bits representan lo siguiente:
Bit 63 – MCi_STATUS register, válido.
Bit 62 – Overflow.
Bit 61 – Error no corregido.
Bit 60 – Error habilitado.
Bit 59 – MCi_MISC register, válido.
Bit 58 – MCi_ADDR register, válido.
Bit 57 – PCC – El contexto del Procesador está dañado.
Bits 56 -> 32 – Otra información.
Bits 31 -> 16 – Código de error específico del modelo.
Bits 15 -> 0 – Código de error de la arquitectura Machine-check (MCA).
Solo el código MCA se explica aquí. Revise los enlaces de la sección "Additional Information" que explican los otros bits en este tipo de registro.

El código de error MCA consiste en los 16-bits menos significativos del registro de estado MCi_STATUS register. La siguiente información le dará detalles adicionales para decodificar el código de error MCA.

Cuando esté revisando el código de error MCA, verifique si se tiene uno de los errores simples o uno de los errores complejos. Las tablas siguientes, listan los códigos de error simples y los códigos de error complejos. Con los errores complejos, tome la información de la tabla dada como referencia y/o úsela con otras para más detalles del código de error.


Codificación de códigos de error simples

Código de Error (Error Code)

Codificación (Binary Encoding)

Descripción (Meaning)

No Error

0000 0000 0000 0000

No se ha reportado ningún error para este banco de registros

Unclassified

0000 0000 0000 0001

Este error no ha sido clasificado dentro de los errores de MCA.

Microcode ROM Parity

0000 0000 0000 0010

Error de paridad en el microcódigo interno ROM.

External Error

0000 0000 0000 0011

El BINIT# de otro procesador, causó que este procesador entre en error Machine-check.

FRC Error

0000 0000 0000 0100

FRC (Functional Redundancy check) master/slave error.


Codificación de códigos de error complejos

Tipo (Type)

Forma (Form)

Interpretación (Interpretation)

TLB Errors

0000 0000 0001 TTLL

{TT}TLB{LL}_ERR

Memory Hierarchy Errors

0000 0001 RRRR TTLL

{TT}CACHE{LL}_{RRRR}_ERR

Bus and Interconnect Errors

0000 1PPT RRRR IILL

BUS{LL}_{PP}_{RRRR}_{II}_{T}_ERR

Internal Timer

0000 0100 0000 0000


Nota: En este ejemplo, tome los valores del campo " Bus and Interconnect Errors" (0000 1110 0000 1111) que coincidan, para decodificar los valores de PP, T, RRRR, II y LL.

Codificación de TT (Tipo de Transacción) Sub-Campo

Tipo de Transacción (Transaction Type)

Mnemónico (Mnemonic)

Codificación (Binary Encoding)

Instruction

I

00

Data

D

01

Generic

G

10


Codificación de Nivel para LL (Memory Hierarchy Level) Sub-Campo

Nivel de Jerarquía
(Hierarchy Level)

Mnemónico (Mnemonic)

Codificación (Binary Encoding)

Level 0

L0

00

Level 1

L1

01

Level 2

L2

10

Generic

LG

11


Codificación de Requerimiento (RRRR) Sub-Campo

Tipo de Requerimiento (Request Type)

Mnemónico (Mnemonic)

Codificación (Binary Encoding)

Generic Error

ERR

0000

Generic Read

RD

0001

Generic Write

WR

0010

Data Read

DRD

0011

Data Write

DWR

0100

Instruction Fetch

IRD

0101

Prefetch

PREFETCH

0110

Eviction

EVICT

0111

Snoop

SNOOP

1000


Codificación de Participación (PP) Sub-Campo

Transacción (Transaction)

Mnemónico (Mnemonic)

Codificación (Binary Encoding)

Requerimiento originado por el procesador local.

SRC

00

El procesador local responde a un requerimiento.

RES

01

El procesador local observa el error como externo. De un Tercero

OBS

10

Gen'erico
(Generic)

11

 
Codificación de Tiempo (T) Sub-Campo

Transacción (Transaction)

Mnemónico de Codificación


(Mnemonic Binary Encoding)
El requerimiento Expiró
(Request timed out)

TIMEOUT 1

El Requerimiento No expiró
(Request did not time out)

NOTIMEOUT 0

 
Codificación de Memoria y Entrada/Salida  (Memory o I/O) (II) Sub-Campo

Transacción (Transaction)

Mnemónico (Mnemonic)

Codificación (Binary Encoding)

Memory Access

M

00

Reserved

01

I/O

IO

10

Other transaction

11


Ejemplo de decodificación de un registro de estado de un banco

Del ejemplo mostrado arriba, decodificamos la información de registro MC0_STATUS de la CPU 0:

0:00:28:43.588 cpu0:1077)ALERT: MCE: 193: Machine Check Exception: Bank 0, Status be0000001008081f

  1. Verifique el fabricante del procesador (CPU) ejecutando el siguiente comando:

    # cat /proc/cpuinfo

    La respuesta muestra una linea con la identificación del fabricante vendor_id:

    vendor_id : GenuineIntel

    En este caso el fabricante del procesador (CPU) es Intel y por lo tanto, no es posible determinar el significado del número del banco sin experiencia específica del modelo. Para procesadores AMD, el número del banco entrega más detalle.

  2. Se vé en la información del archivo de eventos log, que el valor del registro MC0_STATUS es: be0000001008081f. Este valor es hexadecimal. Se tiene que convertir este dato de 64-bit a binario para posteriormente decodificar la información.

    be0000001008081f = 1011 1110 0000 0000 0000 0000 0000 0000 0001 0000 0000 1000 0000 1000 0001 1111

  3. Primero decodifique los 7 bits más significativos para mirar la información general contenida en el registro, esto es, decodificar los bits 57 a 63 que son: 1011 111.

    Bit 63 = 1 – MCi_STATUS register contents are valid (if this bit is 0, then ignore all of the data in this register). (Válido). Si es 0 ignore la información.
    Bit 62 = 0 – An overflow did not occur. (No overflow).
    Bit 61 = 1 – Error was not corrected. (Error no fué corregido).
    Bit 60 = 1 – Error checking was enabled. (Chequeo de errores habilitado).
    Bit 59 = 1 – Contents of the MCi_MISC register is valid. (Válido).
    Bit 58 = 1 – Contents of the MCi_ADDR register is valid. (Válido).
    Bit 57 = 1 – Processor context is corrupt - register values are unreliable.

    Nota: Los bits son contados desde 0 hasta 63, siendo 0 el bit menos significativo y 63 el más significativo.

  4. Decodifique el código de error MCA que son los 16 bits menos significativos del registro " MCi_STATUS register", es decir decodificar los bits 0 a 15 que son: 0000 1000 0001 1111.

    El patrón de estos bits sigue el código de error complejo para el llamado "Bus and Interconnect Errors". El patrón es 0000 1PPT RRRR IILL.

    Decodificando el patrón tenemos:

    0000 1000 0001 1111
    0000 1PPT RRRR IILL


    PP = 00 – Local processor was performing an operation that failed
    T = 0 – Operation that was in progress did not time-out
    RRRR = 0001 – Operation was a generic read operation
    II = 11 – Operation was marked as Other Transaction, that is, not a regular memory or I/O operation
    LL = 11 – Generic level, or not a cache based operation

  5. Resumiendo lo encontrado, parece ser una falta ocurrida durante una operación genérica de lectura de un espacio normal de memoria o en un dispositivo de entrada/salida.

  6. Con esto de puede trabajar en corregir los posibles problemas de hardware. Si es necesario comuníquese con su proveedor de hardware para ayuda adicional.

Otras consideraciones 

  • La información reportada sobre la arquitectura de chequeo de máquina es para ayudar en la solución de problemas de hardware. Ocasionalmente la información decodificada desde el código de error MCA no es suficiente. Si requiere más información, refiérase a la documentación de los fabricantes del procesador (CPU) para más detalles.

  • Si la información es inválida pero ha ocurrido un error "Machine-check Exception (MCE)", puede ser que la falla ocurrió en un momento en el que no se pudo recopilar suficiente información relacionada a la misma. En este caso el problema de hardware todavía existe.

  • Dependiendo de la falla del hardware, usted puede extraer los eventos del registro log del archivo "Core Dump" de los servidores ESX o ESXi para reunir información de las lineas con relación a errores "Machine-check Exception (MCE)", especialmente si ellos ocurren en más de una CPU. Decodificando la información reportada por todas las CPUs puede ser realmente útil. Para mayor información, vea: Extracting the log file after an ESX or ESXi host fails with a purple screen error (1006796).

  • Proporcionándole la información del registro de eventos log relacionada con los errores "Machine-check Exception" a su proveedor de hardware, puede ayudarle con la investigación de los problemas en su hardware.

Additional Information

Si desea información más detallada, la puede encontrar en la documentación relacionada de los fabricantes de los procesadores:
Un artículo de las Comunidades de VMware proporciona otros términos que están relacionados con: ESX Purple Screen.

Tags

Español Espanol Spanish

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 1 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (4000 or fewer characters)
  • 1 Ratings
Actions
KB: