Como saber se o RAM ECC está funcionando?

19

Estou planejando obter alguma RAM ECC para substituir a RAM não ECC atualmente instalada na minha placa-mãe Asus M5A97 Pro (chipset AMD 970, CPU FX-6100).

Depois de instalar a RAM, como posso saber se o recurso ECC da RAM está funcionando corretamente?

Pensei sobre o dmidecode --type memoryque atualmente imprime, entre outras coisas, para cada cartão de memória RAM:

Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits

(Por um lado, eu esperaria que, com 1 bit de ECC por byte, a largura dos dados permaneça em 64 bits, mas a largura total em 72 bits).

Isso pode ser usado para determinar se o ECC está operacional? Ou o dmidecode é um nível muito baixo para isso? O que mais eu poderia usar (exceto esperar e ver se um erro de ECC aparece nos logs, o que indicaria que está funcionando, mas não que não está funcionando)?

Atualização: Mais tarde pensei em edac-utils. Instalando-os, eu entendo Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set. Isso me deu edac-utile edac-ctlexecutáveis. Um deles pode ser usado para esse fim?

um CVn
fonte
2
alguém com mais tempo do que eu pode adicionar a parte sobre ecc_check.c em pugetsystems.com/labs/articles/… em uma das respostas?
Costin Gușă

Respostas:

12

Parece que não há uma maneira certa de dizer , no entanto, várias abordagens podem lhe dar algum tipo de resposta. Aparentemente, você praticamente precisa tentar os diferentes até encontrar um que informe que o ECC está funcionando.

No meu caso, o memtest86 + 4.20 não pôde ser convencido a perceber que estava lidando com RAM de ECC; mesmo que eu o tenha configurado para ECC On, ele ainda será reportado ECC: Disabledna linha IMC. Ainda não tentei com uma versão mais recente. No entanto (possivelmente após a instalação do edac-utils, infelizmente eu fiz as duas coisas ao mesmo tempo), o Linux reporta nos logs de inicialização (intercalados com outras entradas):

[    4.867198] EDAC MC: Ver: 2.1.0
...
[    4.874374] MCE: In-kernel MCE decoding enabled.
[    4.875414] AMD64 EDAC driver v3.4.0
[    4.875438] EDAC amd64: DRAM ECC enabled.
...
[    4.875542] EDAC amd64: CS0: Unbuffered DDR3 RAM
[    4.875545] EDAC amd64: CS1: Unbuffered DDR3 RAM
[    4.875546] EDAC amd64: CS2: Unbuffered DDR3 RAM
[    4.875548] EDAC amd64: CS3: Unbuffered DDR3 RAM

o que é uma boa indicação. Fazer manualmente /etc/init.d/edac restartnão cria entradas de log semelhantes e, olhando para um log mais antigo de algumas reinicializações atrás, vejo:

[   13.886688] EDAC MC: Ver: 2.1.0
[   13.890389] MCE: In-kernel MCE decoding enabled.
[   13.891082] AMD64 EDAC driver v3.4.0
[   13.891107] EDAC amd64: DRAM ECC disabled.
[   13.891116] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[   13.891117]  Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[   13.891118]  (Note that use of the override may cause unknown side effects.)

dmidecode --type memorytambém fornece duas indicações bastante fortes: a propriedade "tipo de correção de erros" da matriz de memória física (que, por algum motivo, mostrou o mesmo na RAM não-ECC , portanto, isso pode estar relacionado ao suporte da placa-mãe e não aos recursos da memória),

Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: Multi-bit ECC

e a largura total de cada dispositivo de memória e largura de dados, respectivamente (os bits adicionais são os usados ​​para o ECC):

Handle 0x0028, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0026
    Error Information Handle: Not Provided
    Total Width: 72 bits
    Data Width: 64 bits
um CVn
fonte
5

Existe uma maneira muito simples e eficaz de fazer isso, desde que você tenha acesso ao console do seu servidor / PC e possa reiniciá-lo: memtest86 +

Esta ferramenta bacana irá mostrar rapidamente se a memória está habilitada para ECC. Também acredito que ele realizará a validação do ECC ao fazer o teste real.

Aqui está uma captura de tela (um pouco desatualizada): insira a descrição da imagem aqui

pauska
fonte
Perfeito! Por enquanto, estou vendo IMC : AMD FX(tm)-6100 Six-Core Processor (ECC : Disabled)e ECC off. Suponho que, se ele mostrar algo diferente de Disablede offpara o ECC com os novos DIMMs, estou pronto para o hardware, pelo menos?
a CVn 26/06
2
@ MichaelKjörling Eu lido apenas com o ECC em servidores padrão da indústria com CPUs Xeon, então não faço ideia. Eu posso imaginar que a CPU precisa suportar ECC, já que o controlador de memória reside dentro dela.
pauska
en.wikipedia.org/wiki/… lista o FX-6100 como Zambeze (baseado em bulldozer), dos quais "todos os modelos suportam ... ECC [RAM]"
um CVn
Infelizmente, o memtest86 + 4.20 não parecia querer reconhecer minha RAM como ECC. No entanto, existem outras indicações bastante fortes de que o ECC está funcionando; veja minha resposta. Ainda assim, muito obrigado!
a CVn 27/06
1
Isso parece tipo de relevante - confluence.wartungsfenster.de/display/Adminspace/...
Faheem Mitha