Como interpreto as mensagens do MCE?

10

Percebi vários erros que apareceram recentemente em /var/log/messagesum de nossos servidores (abaixo). No entanto, o cliente mce parece ter menos certeza da origem do erro do que as entradas decodificadas no syslog. Existe algum tipo de chave a ser usada para interpretar a saída do MCE?

Nov 12 04:19:19 areion kernel: [14698753.176035] Machine check events logged
Nov 12 04:19:19 areion mcelog: HARDWARE ERROR. This is *NOT* a software problem!
Nov 12 04:19:19 areion mcelog: Please contact your hardware vendor
Nov 12 04:19:19 areion mcelog: MCE 0
Nov 12 04:19:19 areion mcelog: CPU 0 BANK 8
Nov 12 04:19:19 areion mcelog: MISC 640738dd0009159c ADDR 96236c6c0
Nov 12 04:19:19 areion mcelog: TIME 1352711959 Mon Nov 12 04:19:19 2012
Nov 12 04:19:19 areion mcelog: MCG status:
Nov 12 04:19:19 areion mcelog: MCi status:
Nov 12 04:19:19 areion mcelog: MCi_MISC register valid
Nov 12 04:19:19 areion mcelog: MCi_ADDR register valid
Nov 12 04:19:19 areion mcelog: MCA: MEMORY CONTROLLER RD_CHANNELunspecified_ERR
Nov 12 04:19:19 areion mcelog: Transaction: Memory read error
Nov 12 04:19:19 areion mcelog: STATUS 8c0000400001009f MCGSTATUS 0
Nov 12 04:19:19 areion mcelog: MCGCAP 1c09 APICID 20 SOCKETID 1
Nov 12 04:19:19 areion mcelog: CPUID Vendor Intel Family 6 Model 44

Todos os erros parecem estar conectados ao mesmo banco de memória:

areion:~# awk -F'mcelog:' '/mcelog:.*BANK/{ print $2; }' < /var/log/messages |uniq
 CPU 0 BANK 8 

Eu tenho o daemon mcelog em execução e, quando verifico se há informações de erro, ele não parece saber de onde vêm os erros. Apenas que eles estão associados CPU0(temos apenas uma CPU nesta caixa):

Memory errors
SOCKET 1 CHANNEL any DIMM any
corrected memory errors:
        77 total
        77 in 24h
uncorrected memory errors:
        0 total
        0 in 24h
Per page corrected memory statistics:
359ffc000: total 2 2 in 24h online

3b93cc000: total 2 2 in 24h online

3ce45c000: total 2 2 in 24h online

96236c000: total 20 20 in 24h online triggered

96545c000: total 9 9 in 24h online

96a82c000: total 9 9 in 24h online

96a8ec000: total 1 1 in 24h online

96fb6c000: total 15 15 in 24h online triggered

9c2edc000: total 15 15 in 24h online triggered

9c5eac000: total 1 1 in 24h online

9c6a1c000: total 1 1 in 24h online

Não está nada claro como eu devo interpretar essas informações. Por um lado, o cliente mce não indica canal ou DIMM, mas a mensagem decodificada indica que os erros ocorrem no DIMM 8. dmesgparece indicar que apenas 42 mensagens foram registradas:

[14698753.176035] Machine check events logged
[14698753.629174] Machine check events logged
[14698815.338595] __ratelimit: 38 callbacks suppressed
[14698815.338628] Machine check events logged
[14698816.020797] Machine check events logged

Parece que estou recebendo mensagens confusas, o que me faz pensar que suposições devem ser feitas com base nas informações relatadas pelas várias fontes.

Informações diversas:

areion:~# grep 'model name' /proc/cpuinfo |uniq
model name      : Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz

areion:~# apt-cache policy mcelog |grep Installed
  Installed: 1.0~pre3-3

areion:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.6 (squeeze)
Release:        6.0.6
Codename:       squeeze
vezult
fonte

Respostas:

2

Você pode tentar substituir o DIMM em questão (CPU 0, SOCKET 8) e verificar se as mensagens do MCE continuam sendo geradas.

O pacote mcelog vem configurado com alguns limites padrão para vários eventos do MCE que ocorrem ao longo do tempo. Confira /etc/mcelog/mcelog.confpara mais detalhes. Para erros de página de memória, o limite é de 10 eventos em 24 horas. (Não tenho muita certeza de onde vem esse número, mas provavelmente é um ponto de referência razoável). Sua postagem menciona 77 eventos corrigíveis em 24 horas em várias páginas, por isso é bem provável que o DIMM tenha desenvolvido um problema que pode ou não se transformar em algo mais sério.

Eu não ficaria muito chateado com o recebimento de informações inconsistentes de diferentes fontes. Em geral, descobri que qualquer coisa no nível do firmware é bastante específica da plataforma (ou seja, específica para esse modelo de hardware específico). Minha regra geral para problemas relacionados ao firmware é que as ferramentas do fornecedor geralmente são as mais precisas, mas as menos utilizáveis. As ferramentas de código aberto mais genéricas são mais fáceis de trabalhar, mas podem não fornecer informações suficientes para mostrar exatamente o que está acontecendo.

Tim Potter
fonte