Comment savoir si RAM ECC fonctionne?

19

Je prévois d'obtenir de la RAM ECC pour remplacer la RAM non ECC que j'ai actuellement installée sur ma carte mère Asus M5A97 Pro (chipset AMD 970, processeur FX-6100).

Après avoir installé la RAM, comment savoir si la fonction ECC de la RAM fonctionne correctement?

J'ai pensé à dmidecode --type memoryce qui s'imprime actuellement entre autres pour chaque clé RAM:

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

(D'une part, je m'attendrais à ce que avec 1 bit d'ECC par octet la largeur des données reste 64 bits mais la largeur totale à lire 72 bits.)

Peut-il être utilisé pour déterminer si l'ECC est opérationnel? Ou le dmidecode est-il trop bas pour cela? Que puis-je utiliser d'autre (sauf attendre et voir si une erreur ECC apparaît dans les journaux, ce qui indiquerait que cela fonctionne mais pas qu'il ne fonctionne pas)?

Mise à jour: j'ai plus tard pensé aux edac-utils. Les installer, je reçois Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set. Cela m'a donné edac-utilet edac-ctlexécutables. Peut-on en utiliser un à cette fin?

un CVn
la source
2
quelqu'un avec plus de temps que moi peut-il ajouter la partie sur ecc_check.c de pugetsystems.com/labs/articles/… dans l'une des réponses?
Costin Gușă

Réponses:

12

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: Disabledsur 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 restartne 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 memorydonne é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
un CVn
la source
5

Il existe un moyen très simple et efficace de le faire, à condition que vous ayez accès à votre serveur / PC à partir de la console et que vous puissiez le redémarrer: memtest86 +

Cet outil astucieux vous montrera rapidement si la mémoire est activée ECC. Je crois également qu'il effectuera la validation ECC lors des tests réels.

Voici une capture d'écran (légèrement obsolète): entrez la description de l'image ici

pauska
la source
Parfait! Pour l'instant, je vois IMC : AMD FX(tm)-6100 Six-Core Processor (ECC : Disabled)et ECC off. Je suppose donc que si elle montre autre chose que Disabledet offpour ECC avec les nouveaux modules DIMM, je suis prêt pour autant que le matériel va au moins?
un CVn du
2
@ MichaelKjörling Je traite uniquement avec ECC sur des serveurs standard de l'industrie avec des processeurs Xeon, donc je n'en ai aucune idée. Je peux imaginer que le CPU doit prendre en charge ECC, car le contrôleur de mémoire réside à l'intérieur.
pauska
en.wikipedia.org/wiki/… répertorie le FX-6100 comme Zambezi (basé sur Bulldozer), dont "tous les modèles prennent en charge ... ECC [RAM]"
un CVn du
Malheureusement, memtest86 + 4.20 ne semblait pas vouloir reconnaître ma RAM comme ECC. Cependant, il y a d'autres indications assez fortes que l'ECC fonctionne; voir ma réponse. Merci beaucoup!
un CVn le
1
Cela semble en quelque sorte pertinent - confluence.wartungsfenster.de/display/Adminspace/…
Faheem Mitha