MC0, fila 2 y canal 0 son significativos. Intente reemplazar DIMMA1 en CPU0.
A modo de ejemplo, tuve que identificar un DIMM defectuoso en un servidor Linux con 16 ranuras DIMM completamente pobladas y dos CPU. Estos son los errores que vi en la consola:
EDAC k8 MC1: general bus error: participating processor(local node origin), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
EDAC MC1: CE page 0x103ca78, offset 0xf88, grain 8, syndrome 0x9f65, row 1, channel 0, label "": k8_edac
EDAC MC1: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC1: extended error code: ECC chipkill x4 error
El DIMM incorrecto en mi servidor era DIMMA0 en la CPU1.
EDAC significa Detección y corrección de errores y está documentado en http://www.kernel.org/doc/Documentation/edac.txt y /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac .txt en mi sistema (RHEL5). CE significa "errores corregibles" y, como lo indica la documentación, "los CE proporcionan indicaciones tempranas de que un DIMM está comenzando a fallar".
Volviendo a los errores EDAC anteriores que vi en la consola de mi servidor, MC1 (Controlador de memoria 1) significa CPU1, la fila 1 se conoce como csrow1 (Chip-Select Row 1) en la documentación de Linux EDAC, y el canal 0 significa el canal de memoria 0 Verifiqué la tabla en http://www.kernel.org/doc/Documentation/edac.txt para ver que csrow1 y Channel 0 corresponden a DIMM_A0 (DIMMA0 en mi sistema):
Channel 0 Channel 1
===================================
csrow0 | DIMM_A0 | DIMM_B0 |
csrow1 | DIMM_A0 | DIMM_B0 |
===================================
===================================
csrow2 | DIMM_A1 | DIMM_B1 |
csrow3 | DIMM_A1 | DIMM_B1 |
===================================
(Como otro ejemplo, si hubiera visto errores en MC0, csrow4 y Channel 1, habría reemplazado DIMMB2 en CPU0).
Por supuesto, en realidad hay dos ranuras DIMM llamadas DIMMA0 en mi servidor (una para cada CPU), pero nuevamente el error MC1 corresponde a la CPU1, que aparece en "Localizador de bancos" en la salida de dmidecode:
[root@rce-8 ~]# dmidecode -t memory | grep DIMMA0 -B9 -A8
Handle 0x002E, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x002B
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMMA0
Bank Locator: CPU0
Type: DDR2
Type Detail: Synchronous
Speed: 533 MHz (1.9 ns)
Manufacturer:
Serial Number:
Asset Tag:
Part Number:
--
Handle 0x003E, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x002B
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMMA0
Bank Locator: CPU1
Type: DDR2
Type Detail: Synchronous
Speed: 533 MHz (1.9 ns)
Manufacturer:
Serial Number:
Asset Tag:
Part Number:
(En mi estación de trabajo, dmidecode realmente muestra el número de pieza y el número de serie de mis DIMM, lo cual es muy útil).
Además de buscar errores en la consola y en los registros, también puede ver los errores por MC / CPU, fila / csrow y canal al examinar / sys / devices / system / edac. En mi caso, los errores fueron solo en MC1, csrow1, canal 0:
[root@rce-8 ~]# grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count
/sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow1/ch0_ce_count:6941652
/sys/devices/system/edac/mc/mc1/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch1_ce_count:0
Espero que este ejemplo sea útil para cualquiera que intente identificar un DIMM incorrecto basado en errores de EDAC. Para obtener más información, le recomiendo leer toda la documentación de Linux EDAC en http://www.kernel.org/doc/Documentation/edac.txt