Memtest86+ détecte une erreur dans la mémoire

Bonjour,

Je viens de lancer memtest86+ pendant 9 heures (17 passes complètes). Il y a des erreurs de détectées. Je ne sais pas lire correctement l’affichage de ce programme donc je le reproduis ici :

Wall Time   Cached   RsvdMem   MemMap   Cache   ECC   Test   Pass   Errors   ECC Errors
---------   ------   -------   ------   -----   ---   ----   ----   ------   ----------
8:58:42     2046M    76K       e820     on      off   Std    17     14       0


Tst   Pass   Failing Address            Good       Bad        Err-Bits   Count   Chan
---   ----   ------------------------   --------   --------   --------   -----   ----
4     3      0005cfb6f08  -  1487.7MB   59d6a249   59d68249   00002000   1        

La deuxième ligne était surlignée en rouge.

Sur la ligne principale, il y a marqué qu’il y a 14 erreurs. Et dans la ligne sur le détail des erreurs, il y a marqué qu’il n’y a qu’une seule erreur (“count” == 1). Quelqu’un sait lire cet affichage ? Combien il y a eu d’erreurs réellement ?

J’aimerais savoir comment dire au noyau Linux de ne pas utiliser les parties de la mémoire qui sont défectueuses. Quelqu’un sait comment faire ? Un fichier texte à éditer qui contient les plages d’adresses à ne pas utiliser ?

Informations supplémentaires : je suis sous Debian stable (Squeeze), mon noyau Linux est en version 2.6.32-5-amd64, et j’ai deux barrettes de RAM SODIMM DDR2 de 1 Go chacune.

Merci

Ma dernière expérience avec des messages en rouge dans memtest s’est terminé par le changement de la barrette défectueuse.
Je ne sais pas s’il est possible de “blacklister” une zone mémoire.

Quand bien même ça serait possible, je ne pense pas que ça soit judicieux. Une fois qu’un composant est défectueux il vaut mieux le changer : des erreurs vont continuer à apparaître sur cette barrette à d’autres endroits, la seule question est quand précisément et non pas est-ce que.

Plusieurs possibilités.
http://en.wikipedia.org/wiki/Memtest86#cite_ref-10

Non, pas forcément. Je distingue deux cas :

  • soit le défaut est localisé à certaines cellules de RAM et on peut le circonscrire ;
  • soit le défaut n’est pas localisé (les adresses des erreurs changent) mais provient de la circuiterie, d’un problème de timing, d’une incompatibilité avec le chipset, une autre barrette ou la carte mère… et on ne peut pas le circonscrire de cette façon.

Merci pour vos réponses.

Je ne comprends pas la syntaxe de la commande badram de grub :

[quote]badram addr,mask

Given a page-aligned address and a base address / mask pair, if all the bits of the page-aligned address that are enabled by the mask match with the base address, it means this page is to be filtered.[/quote]

Donc dans mon cas, il faudrait faire :

pour empêcher l’utilisation de la RAM sur la plage d’adresses 5cfb6f08 à 5cfb7308 ? (128 octets désactivés)

C’est quoi le “mask” ?

Je vais laisser memtest86+ tourner jusqu’à lundi, on verra bien le résultat au bout de 3 jours.

Bonjour,

Donc j’ai laissé memtest86+ tourner pendant 64 heures.

J’ai regardé à la 43ème heure et j’ai vu ceci :

Wall Time   Cached   RsvdMem   MemMap   Cache   ECC   Test   Pass   Errors   ECC Errors
---------   ------   -------   ------   -----   ---   ----   ----   ------   ----------
43:00:00     2046M       76K     e820      on   off    Std     80        2            0


Tst   Pass   Failing Address            Good       Bad        Err-Bits   Count   Chan
---   ----   ------------------------   --------   --------   --------   -----   ----
  4     75   0005cfb6f08  -  1487.7MB   19c2367d   19c2167d   00002000       1       

On constate qu’une erreur s’est de nouveau produite exactement à la même adresse que lors du premier test, au niveau du même bit. Je continue de laisser tourner. Le nombre d’erreurs dans la première ligne continue d’augmenter lors de certaines passes pour atteindre 1162 à la 64ème heure :

Wall Time   Cached   RsvdMem   MemMap   Cache   ECC   Test   Pass   Errors   ECC Errors
---------   ------   -------   ------   -----   ---   ----   ----   ------   ----------
64:09:00     2046M       76K     e820      on   off    Std    118     1162            0


Tst   Pass   Failing Address            Good       Bad        Err-Bits   Count   Chan
---   ----   ------------------------   --------   --------   --------   -----   ----
  4     75   0005cfb6f08  -  1487.7MB   19c2367d   19c2167d   00002000       1       

Le problème c’est que la deuxième ligne n’a plus du tout évoluée, et aucune nouvelle ligne n’est apparue pour préciser des adresses mémoires défectueuses supplémentaires. Le nombre “count” de la deuxième ligne n’a pas changé non plus et est resté à 1.

Je pense que memtest86+ est complètement bugué, et que seulement les informations sur la première erreur rencontrées sont affichées, après ça plante pour les erreurs suivantes. Seul le nombre d’erreurs total est mis-à-jour correctement. La version de memtest86+ que j’utilise est la 4.10. Sur le site du logiciel : http://www.memtest.org/ ils indiquent qu’une nouvelle version (la 4.20) est disponible.

Je vais tenter d’utiliser la dernière version disponible en espérant qu’elle soit un peu moins buguée. Même si elle est toujours buguée, j’aurais au moins une bonne confiance dans le fait qu’il n’y a qu’un seul bit de ma mémoire qui est défectueux si les informations disponibles pour la première erreur rencontrée concernent toujours la même adresse (0005cfb6f08).