1

Inspired by this question.

If you're testing your memory, you have to test all memory - you shouldn't trust any of it to be good.

How can memtest effectively do this when memtest itself will consume memory while loaded?

1
  • 1
    If I recall correctly, memtest86 relocates itself mid-run. Even if it didn't, the likelihood that memtest86 (which is extremely small) loaded into faulty memory and still manages to pass all tests is extremely unlikely (much more unlikely than it just failing to find normal faulty memory outside the address space used by its own executable, this is why it is recommended that memtest is run repeatedly). It adds pretty much no more uncertainty than already exists -- memory testing is not an exact science, anyway.
    – Chris Down
    Commented Sep 17, 2013 at 21:27

2 Answers 2

4

According to this forum post, memtest86 is able to relocate itself:

http://www.passmark.com/forum/showthread.php?4278-Memory-test-coverage

I haven't found more sources yet, but I guess when you're the only thing running, this shouldn't be very hard to implement, so it's probably correct :)

EDIT: additional details: http://www.memtest.org/download/1.55/memtest86+-1.55/README.build-process

I haven't found anything regarding memtest86+; it is possible that this is a memtest86-only feature. memtest86+ does have a slightly relevant section in an old FAQ though:

- Which memory is tested?

  As much as possible of the system memory is tested. Unfortunately memtest86+
  can usually not test all of the memory. The reason for this is that todays
  processors have become so complex that they require a small amount of memory
  to keep accounting data of the processor state. If memtest were to write
  over these areas the state of the processor becomes invalid and it's
  behaviour unpredictable. Alas it is also impossible to relocate these areas
  in the memory.

  This means that a small area of your memory can not be tested by memtest. If
  this part of the memory is defective you will know soon enough though as the
  processor, or parts of the processor simply won't work correctly if this
  part of your memory is defective. Do realise though that in very rare cases
  memtest will show no errors even though the module is defective, not because
  memtest can't detect the error, but because memtest can't test the area the
  error is located in.
0

You will have to use a specifically designed memory tester to do what you want. There are several out there on the market. However, you will have to exit the operating system and load up their diagnostic and run it for awhile. Thus you will lose access to your computer while you are running the comprehensive test.

1
  • this is not a practical "how do I do x" question. it's a theoretical question about memtest. please read the question more carefully.
    – strugee
    Commented Sep 17, 2013 at 21:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .