La memory de test memtest86 + est-elle utilisée pour s'exécuter elle-même?

L'un des scénarios d'échec de server commun est la mauvaise DRAM, parfois même lorsque la memory ECC est utilisée.

memtest86+ est l'un des outils les plus utiles pour diagnostiquer les problèmes de DRAM. Comme il se charge au début de la memory, je me demandais si memtest86+ vérifie la partie de la memory sur laquelle memtest86+ est chargé.

La memory est-elle atsortingbuée à memtest86+ si petite qu'elle n'a pas d'importance ou est-il possible que memtest86+ puisse manquer un défaut dans la DRAM car il ne peut pas tester les locations de memory dans lesquels il réside?

2 Solutions collect form web for “La memory de test memtest86 + est-elle utilisée pour s'exécuter elle-même?”

De toute évidence, memtest86 + ne peut pas tester la région de memory qui contient actuellement le code exécutable memtest86 + (mais s'il y a des erreurs de memory dans cette région, il est fort probable que le test lui-même se bloque). Cependant, memtest86 + est capable de déplacer son propre code vers une adresse différente au moment de l'exécution, et en utilisant cette astuce, il est capable de tester toute la memory qu'il est autorisé à utiliser par le firmware (BIOS) – tout simplement pas tout à la fois.

Cette relocalization de code est décrite dans README.background à l'intérieur de l'archive de code source memtest86 + (le file est légèrement dépassé – par exemple, il indique que les adresses utilisées pour le code memtest86 + sont 0x2000 et 0x200000, mais l'adresse faible telle que définie dans la source est en fait 0x10000, et l'adresse haute est 0x2000000 ou 0x300000 en fonction de la quantité de memory dans la machine).

Mais même avec ce tour de relocation, memtest86 + ne peut pas tester toute memory pour les raisons suivantes:

  • Habituellement, le microprogramme (BIOS) réserve certaines régions RAM pour son utilisation (p. Ex., Tables ACPI). Alors que ces régions de RAM peuvent être consultées par CPU, écrire n'importe quoi dans elles peut entraîner un comportement imprévisible.

  • Une partie de la RAM est utilisée pour le mode de gestion du système et n'est même pas accessible depuis la CPU en dehors du code SMM privilégié.

  • La plage de l'adresse RAM entre 640K et 1M est inaccessible en raison des particularités de la layout de la memory PC existante (une partie de cette RAM peut être utilisée comme ombre pour la ROM du BIOS et pour les SMM, d'autres parties peuvent être complètement inaccessibles).

Non, memtest ne peut pas tester sa propre memory. Cependant, il est si petit (seulement un peu de KB) qu'il n'a pas d'importance. EDIT: cette déclaration est fausse car, comme indiqué dans la réponse sélectionnée, memtest peut se déplacer dynamicment pour tester toute la memory adressable par l'user.

En théorie, le processeur moderne peut, au moment du démarrage, configurer une partie de son cache en tant que memory programmable, à partir de très petits programmes (en tant que memtest) peuvent être exécutés sans toucher DRAM.

Cependant, c'est une fonctionnalité spécifique au model (qui requirejs un support du BIOS) et je ne pense pas que memtest l'utilise.

  • Dans le server ESXi, pourquoi la memory hôte consommée est-elle supérieure à la memory allouée?
  • slurm AllocMem always 0
  • Pourquoi mon process meurt-il mystérieusement?
  • Confusion de l'utilisation de la memory dans Parallels VM
  • Existe-t-il un point pour que Windows gère la taille du file de la page et dispose d'un lecteur de memory "dédié"
  • Montage de la memory partagée dans le server XCP / XEN, pour stocker VM
  • Considérations relatives à la vitesse / memory du système x86 vs. x64
  • Qu'est-ce que l'utilisation de la RAM sur ce server Ubuntu 12.04.2?
  • Pourquoi le taux de CLEARING est-il trop long?
  • Mon server manque de memory, malgré tout avoir échangé
  • L'hôte KVM n'utilisera pas de memory pour la caching
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.