VMware: Depurando a exceção de verificação de máquina do ESXi - Tela roxa de diagnóstico
Summary: Como depurar a tela de diagnóstico roxa (PSOD) da MCE (Machine Check Exception) do ESXi com um exemplo.
Instructions
Descrição:
Os servidores ESXi podem parar com uma PSOD (tela de diagnóstico roxa) devido a erros de MCE (Machine Check Exception). Os erros de MCE ocorrem devido a problemas de hardware.
A tela de diagnóstico roxa do MCE exibe vários itens. Destes, o MCi_STATUS O registro é útil para depurar o problema.
Detalhes do registro:
- O comando
MCi_STATUSO registro consiste em informações sobre o erro de verificação da máquina. - O registro é exibido ao lado do "
S:" Como mostrado no exemplo abaixo:
MC: PCPU18 B:13 S:0xfe20004000011166 M:0x7246040086 A:0x38c989b100 5
Bits e seu significado:
| 63 | 62 | 61 | 60 | 59 | 58 | 57 | 53-56 | 38-52 | 32-37 | 16-31 | 0-15 |
| Indicador VALID - Se definido, as informações são válidas. | Indicador de OVERFLOW – Se definido, pode indicar que vários MCEs ocorreram próximos uns dos outros. | Indicador UNC - Se definido, a CPU não pôde corrigir o erro. | Bandeira EN | Indicador MISCV - Se definido, o registro MISC contém mais informações. | ADDRV - Se definido, o registro ADDR contém onde o erro ocorreu. | Indicador PCC - Se definido, significa que o processador pode ter sido corrompido. | Arquitetônico se o bit 11 estiver definido, caso contrário, "outras informações". | Arquitetônico se o bit 10 estiver definido, caso contrário, "outras informações". | Outras informações | Código de erro específico do modelo para CPU | Código de erro de verificação da máquina |
Para depurar o erro, os 16 bits do MCi_STATUS cadastro são importantes. Esses bits indicam um erro simples ou composto.
Opção 1: Usando a ferramenta automática
VMware Purple Diagnostic Screen (PSOD) Error Reader
Opção 2: Usando etapas manuais
- Erros simples são rápidos de depurar
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.
- Erros compostos
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 - Sinalizador do formulário
0 – Normal Filtering 1 – Corrected Filtering
A filtragem significa que algumas ou todas as correções subsequentes a essa entrada nessa estrutura não são lançadas.
- TT - Aplica-se a 2 e 4 acima.
Indica o tipo de transação:
00 - Instruction 01 - Data 10 - Generic
- LL - Aplica-se a 1, 2, 4 e 5 acima.
Isso indica o nível na hierarquia de memória em que o erro ocorreu.
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 - Indica o tipo de ação associado ao erro. As ações são:
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) - Descreve a função do processador local no erro.
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 (tempo de espera excedido) - 1 = tempo limite da solicitação excedido.
- II (memória ou E/S)
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
- Erros do controlador de memória - definidos pelos subcampos MMM e CCCC acima
- MMM - Erro de memória
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 com o erro
0000-1110 - CHN - Channel number 1111 - Channel not specified
Este é um exemplo de como analisar uma captura de tela de diagnóstico roxa do MCE:
- Anote o
MCi_STATUSvalor do registro. Aqui está:
0xfe20004000011166.
- Converta-o em binário:
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
- Pegue os 16 bits inferiores do
MCi_STATUSRegistro:
0001 0001 0110 0110
Compare-o com os erros compostos. Nesse caso, parece ser um erro de hierarquia de cache (tipo 4).
- Aplique os valores:
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Conclusão:
- Parece que a tela de diagnóstico roxa ocorreu enquanto havia uma operação de pré-busca em alguns dados no cache L2 do processador.
- Portanto, isso pode ser um problema com o cache L2 no processador.
- Portanto, a CPU deve ser substituída primeiro e, em seguida, verifique se o problema foi resolvido. Caso o problema ocorra novamente, a placa-mãe pode ser substituída.