MC0, ligne 2 et canal 0 sont significatifs. Essayez de remplacer DIMMA1 sur CPU0.
À titre d'exemple, j'ai dû identifier un mauvais module DIMM dans un serveur Linux avec 16 emplacements DIMM entièrement remplis et deux processeurs. Ce sont les erreurs que j'ai vues sur la console:
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
Le mauvais module DIMM de mon serveur était DIMMA0 sur CPU1.
EDAC signifie Error Detection And Correction et est documenté à http://www.kernel.org/doc/Documentation/edac.txt et /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac .txt sur mon système (RHEL5). CE signifie «erreurs corrigibles» et, comme l'indique la documentation, «les CE fournissent des indications précoces qu'un module DIMM commence à tomber en panne».
Pour revenir aux erreurs EDAC ci-dessus que j'ai vues sur la console de mon serveur, MC1 (contrôleur de mémoire 1) signifie CPU1, la ligne 1 est appelée csrow1 (Chip-Select Row 1) dans la documentation Linux EDAC, et le canal 0 signifie le canal de mémoire 0 J'ai vérifié le graphique à http://www.kernel.org/doc/Documentation/edac.txt pour voir que csrow1 et Channel 0 correspondent à DIMM_A0 (DIMMA0 sur mon système):
Channel 0 Channel 1
===================================
csrow0 | DIMM_A0 | DIMM_B0 |
csrow1 | DIMM_A0 | DIMM_B0 |
===================================
===================================
csrow2 | DIMM_A1 | DIMM_B1 |
csrow3 | DIMM_A1 | DIMM_B1 |
===================================
(Comme autre exemple, si j'avais vu des erreurs sur MC0, csrow4 et Channel 1, j'aurais remplacé DIMMB2 sur CPU0.)
Bien sûr, il y a en fait deux emplacements DIMM appelés DIMMA0 sur mon serveur (un pour chaque CPU), mais encore une fois l'erreur MC1 correspond à CPU1, qui est répertoriée sous "Bank Locator" dans la sortie 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:
(Sur mon poste de travail, dmidecode affiche en fait le numéro de pièce et le numéro de série de mes modules DIMM, ce qui est très utile.)
En plus de regarder les erreurs sur la console et dans les journaux, vous pouvez également voir les erreurs par MC / CPU, ligne / csrow et canal en examinant / sys / devices / system / edac. Dans mon cas, les erreurs étaient uniquement sur 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
J'espère que cet exemple est utile pour quiconque essaie d'identifier un mauvais module DIMM en raison d'erreurs EDAC. Pour plus d'informations, je recommande fortement de lire toute la documentation Linux EDAC sur http://www.kernel.org/doc/Documentation/edac.txt