Il semble qu'il n'y ait aucun moyen infaillible de le savoir , mais diverses approches peuvent vous apporter une sorte de réponse. Apparemment, vous devez à peu près essayer les différents jusqu'à ce que vous en trouviez un qui vous indique que ECC fonctionne.
Dans mon cas, memtest86 + 4.20 n'a pas pu être amené à réaliser qu'il s'agissait de RAM ECC; même si je l'ai configuré pour ECC On, il a quand même signalé ECC: Disabled
sur la ligne IMC. Je n'ai pas encore essayé avec une version plus récente. Cependant (peut-être après avoir installé edac-utils, malheureusement j'ai fait les deux essentiellement en même temps), Linux rapporte dans les journaux de démarrage (entrecoupé de quelques autres entrées):
[ 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
ce qui est une assez bonne indication. Faire manuellement /etc/init.d/edac restart
ne crée pas d'entrées de journal similaires, et en regardant un journal plus ancien d'il y a quelques redémarrages, je vois:
[ 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 memory
donne également deux indications assez fortes: la propriété "type de correction d'erreur" de la matrice de mémoire physique (qui cependant, pour une raison quelconque, a montré la même chose sur la RAM non-ECC , cela peut donc être lié au support de la carte mère plutôt qu'aux capacités de la mémoire),
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
et la largeur totale et la largeur des données de chaque périphérique de mémoire, respectivement (les bits supplémentaires étant ceux utilisés pour l'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