¿Cómo saber si RAM ECC está funcionando?

19

Estoy planeando obtener un poco de RAM ECC para reemplazar la RAM no ECC que tengo instalada en mi placa base Asus M5A97 Pro (chipset AMD 970, CPU FX-6100).

Después de instalar la RAM, ¿cómo puedo saber si la función ECC de la RAM funciona correctamente?

Pensé en lo dmidecode --type memoryque actualmente se imprime entre otros para cada memoria RAM:

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

(Por un lado, esperaría que con 1 bit de ECC por byte el ancho de datos permanezca 64 bits pero el ancho total para leer 72 bits).

¿Se puede usar para determinar si la ECC está operativa? ¿O es dmidecode un nivel demasiado bajo para eso? ¿Qué más podría usar (excepto esperar y ver si aparece un error de ECC en los registros, lo que indicaría que está funcionando pero no que no está funcionando)?

Actualización: más tarde pensé en edac-utils. Instalándolos, entiendo Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set. Eso me dio edac-utily edac-ctlejecutables. ¿Se puede usar uno de estos para este propósito?

un CVn
fuente
2
¿Puede alguien con más tiempo que yo agregar la parte sobre ecc_check.c de pugetsystems.com/labs/articles/… en una de las respuestas?
Costin Gușă

Respuestas:

12

Parece que no hay una forma segura de saberlo , sin embargo, varios enfoques pueden obtener algún tipo de respuesta. Aparentemente, tienes que probar los diferentes hasta que encuentres uno que te indique que ECC está funcionando.

En mi caso, memtest86 + 4.20 no pudo ser inducido a darse cuenta de que se trataba de RAM ECC; incluso si lo configuré para ECC On, todavía informaba ECC: Disableden la línea IMC. Todavía no lo he probado con una versión más nueva. Sin embargo (posiblemente después de instalar edac-utils, desafortunadamente hice ambas esencialmente al mismo tiempo), Linux informa en los registros de arranque (intercalados con algunas otras 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

lo cual es una muy buena indicación. Hacer manualmente /etc/init.d/edac restartno crea entradas de registro similares, y al mirar un registro anterior de hace unos reinicios, veo:

[   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 memorytambién da dos indicaciones bastante fuertes: la propiedad del "tipo de corrección de errores" de la matriz de memoria física (que sin embargo, por alguna razón, mostró lo mismo en RAM no ECC , por lo que esto puede estar relacionado con el soporte de la placa base en lugar de las capacidades de la memoria),

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

y el ancho total y ancho de datos de cada dispositivo de memoria, respectivamente (los bits adicionales son los utilizados para el 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
un CVn
fuente
5

Hay una manera muy simple y efectiva de hacerlo, siempre que tenga acceso de consola a su servidor / PC y pueda reiniciarlo: memtest86 +

Esta ingeniosa herramienta le mostrará rápidamente si la memoria está habilitada para ECC. También creo que realizará la validación ECC al hacer la prueba real.

Aquí hay una captura de pantalla (ligeramente desactualizada): ingrese la descripción de la imagen aquí

pauska
fuente
¡Perfecto! Por ahora, estoy viendo IMC : AMD FX(tm)-6100 Six-Core Processor (ECC : Disabled)y ECC off. Supongo que si muestra algo más que Disabledy offpara ECC con los nuevos DIMM, ¿estoy listo en lo que respecta al hardware al menos?
un CVn
2
@ MichaelKjörling Solo trato con ECC en servidores estándar de la industria con CPU Xeon, así que no tengo idea. Me imagino que la CPU necesita ser compatible con ECC, ya que el controlador de memoria reside dentro de ella.
pauska
en.wikipedia.org/wiki/… enumera el FX-6100 como Zambezi (basado en Bulldozer), de los cuales "todos los modelos admiten ... ECC [RAM]"
un CVn
Lamentablemente, memtest86 + 4.20 no parecía querer reconocer mi RAM como ECC. Sin embargo, hay algunas otras indicaciones bastante fuertes de que ECC está funcionando; mira mi respuesta Aún así, muchas gracias!
un CVn
1
Esto parece algo relevante - confluence.wartungsfenster.de/display/Adminspace/…
Faheem Mitha