Memtest86

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
MemTest86
A blue text-mode screen displaying many statistics
A screenshot of MemTest86
Developer(s)PassMark Software
Stable release
8.0 / December 7, 2018; 7 days ago (2018-12-07)
Repositorywww.memtest86.com/download.htm
Written inC and assembly
TypeUtility
LicenseProprietary software
Websitewww.memtest86.com
Memtest86+
A blue text-mode screen displaying many statistics
A screenshot of Memtest86+
Developer(s)Samuel Demeulemeester
Stable release
5.01 / September 27, 2013; 5 years ago (2013-09-27)
Repositorywww.memtest.org#downcode
Written inC and assembly
TypeUtility
LicenseGPL v2.0
Websitewww.memtest.org

MemTest86 and Memtest86+ are memory test software programs designed to test and stress test an x86 architecture computer's random access memory (RAM) for errors, by writing test patterns to most memory addresses, reading back the data, and comparing for errors.[1] Each tries to verify that the RAM will accept and correctly retain arbitrary patterns of data written to it, that there are no errors where different bits of memory interact, and that there are no conflicts between memory addresses.

History[edit]

MemTest86 was developed by Chris Brady in 1994[2]. After MemTest86 remained at version 3.0 (2002 release) for two years, Samuel Demeulemeester created the Memtest86+ fork to add support for newer CPUs and chipsets. As of January 2018 the latest version of Memtest86+ is 5.01.[3][4]

MemTest86 is written in C and x86 assembly. The source code is released under the GNU General Public License (GPL). The bootloading code was originally derived from Linux 1.2.1. Both versions now support current multi-core CPUs and the corresponding chipsets.[citation needed]

Starting from MemTest86 2.3 and Memtest86+ 1.60, the program can output a list of bad RAM regions in the format expected by the BadRAM patch for the Linux kernel.[5][6] GRUB2 is able to supply this same information to an unpatched kernel,[7] making the BadRAM patch unnecessary.

In February 2013, the original MemTest86 was sold to PassMark who continued to improve it through version 4.3.7 (13 May 2014).[2]

Version 5.0 (3 Dec 2013) added UEFI secure booting and add mouse support. When UEFI is not available, Version 5.0 (and later) fall back to BIOS booting and loads the old version 4.3.7.[citation needed]

Version 6.0.0 (13 Feb 2015) adds support for DDR4 RAM, and a row-hammer test based on research from Yoongu Kim, et al.[8]

Description[edit]

Detections of faulty memory are displayed prominently. The application shows not only which memory locations failed, but also which patterns made them fail.

There are two development streams of Memtest86. The original is simply known as MemTest86. The other, known as Memtest86+, is a development fork of the original MemTest86. Their on-screen appearance and functionality were almost identical up until the v4 releases. However, version 5 of MemTest86 added a mouse-driven graphical user interface (GUI) and UEFI support.

These programs work with nearly all PC-compatible computers from 80386- and 80486-based systems to the latest systems with 64-bit processors. Each new release adds support for newer processors and chipsets.[5][6]

MemTest86 is designed to run as a stand-alone, self-contained program from a bootable floppy disk, CD-ROM, USB flash drive, or from a suitable boot manager without an operating system present.[9] This is because the program must directly control the hardware being tested and leave as much of the RAM space as possible for examination.

MemTest86's testing is very comprehensive so it can find otherwise hidden problems on machines that appear to work normally.[9][10] With many chipsets, MemTest86 allows counting of failures even in error-correcting ECC DRAM (without special handling, error correcting memory circuits can mask problems with the underlying memory chips).

Some errors manifest intermittently or depend on the precise bits being stored, and do not occur on each pass; such errors may be revealed by running many passes over an extended period. Some tests use different data each pass to reveal data-dependent errors.[11]

Known issues[edit]

On some machines with the newer UEFI instead of BIOS, the MemTest86 website warns that PS/2 keyboard input is no longer emulated, which can cause the keyboard to be completely or intermittently unresponsive.[12] In these cases it is suggested to leave the tests to run automatically.[12]

References[edit]

  1. ^ "MemTest86 Technical Information". MemTest86.com. PassMark Software. Retrieved 2015-10-22.
  2. ^ a b "MemTest86 History". MemTest86.com.
  3. ^ "MemTest86 Support". MemTest86.com.
  4. ^ "Memtest86+ History". Memtest.org.
  5. ^ a b https://www.memtest86.com/support/ver_history.htm
  6. ^ a b http://www.memtest.org/#change
  7. ^ "GNU GRUB Manual 1.99".
  8. ^ Kim, Yoongu; Daly, Ross; Kim, Jeremie; Fallin, Chris; Lee, Ji Hye; Lee, Donghyuk; Wilkerson, Chris; Lai, Konrad; Mutlu, Onur (2014-07-08). "Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors" (PDF). Carnegie Mellon University. Retrieved 2015-04-07.
  9. ^ a b Fisher, Tim (2018-02-06). "MemTest86 v7.5 Free Memory Testing Tool Review". Lifewire. Dotdash. Retrieved 2018-02-24.
  10. ^ "MemTest86 Technical Information: Algorithms". MemTest86.com. PassMark Software. Retrieved 2014-11-01.
  11. ^ "MemTest86 Technical Information: Detailed Descriptions". MemTest86.com. PassMark Software. Retrieved 2015-10-22.
  12. ^ a b "MemTest86 Support: Known Issues". MemTest86.com. PassMark Software. Retrieved 2015-10-22.

External links[edit]