MemTest86 Technical Information

Test results / reports

Overall test result criteria

The overall test result of the memory test is determined by the following criteria

Result Criteria
PASS All configured tests were completed without any errors detected
FAIL All configured tests were completed with at least one error was detected or MAXERRCOUNT is exceeded at any point of the test
INCOMPLETE PASS At least one of the configured tests was not completed but no errors were detected
INCOMPLETE FAIL At least one of the configured tests was not completed and at least one error was detected

Module test result criteria

The indvidual module test result is determined by the following criteria

Result Criteria
PASS All configured tests were completed and no errors were detected on the module without any undecoded errors
FAIL All configured tests were completed with at least one error detected on the module
INCOMPLETE PASS At least one of the configured tests was not completed but no errors were detected on the module without any undecoded errors
INCOMPLETE FAIL At least one of the configured tests was not completed and at least one error was detected on the module
UNKNOWN No errors were detected on the module but there was at least one undecoded error

Test result summary

At the end of the test, a summary of the test results is displayed, as shown in the following screenshot:

MemTest86 Test Summary

    Lowest Error Address:
        The lowest address that where an error has been reported.
    Highest Error Address:
        The highest address that where an error has been reported.
    Bits in Error Mask:
        A mask of all bits that have been in error (hexadecimal).
    Bits in Error:
        Total bit in error for all error instances and the min, max and average bit in error of each individual occurrence.
    Max Contiguous Errors:
        The maximum of contiguous addresses with errors.
    CPUs in Error:
        List of CPU cores that detected memory errors.
    ECC Correctable/Uncorrectable Errors:
        The number of errors that have been corrected/uncorrected by ECC hardware.
    Test Errors:
        On the right hand side of the screen the number of errors for each test are displayed.

HTML report file

The user may also save the results as an HTML test report to a file. The test report appearance is fully customizable in the pro and site license version. Here is an example of an HTML test report

To save your the results as a HTML report, press 'y' to save when prompted. Note the file name the report will appear as, this will be saved to the USB you have booted from.

As seen in the following screenshot:

MemTest86 HTML Report

For Pro and Site editions, HTML report files can be automatically saved by specifying the AUTOMODE and AUTOREPORTFMT configuration file parameters. See Configuring MemTest86 for more details about configuration file parameters.

When network booting from PXE (Site edition only), HTML reports are uploaded to the PXE server. This can be useful for automated workflows such as production line environments.

Binary results file

(Site and Pro editions only) For environments with limited storage space and processing capacity, the user may choose to save the results as a binary file. The format of the binary file is as follows.

typedef struct _TESTRESULT { CHAR8 Signature[4];// "MT86" signature UINT16 Revision; // Current revision: 1.1 (Upper byte: major version; Lower byte: minor version) UINT32 StartTime; //Start test time in Unix time, accurate to 1 sec UINT32 ElapsedTime;//Test elapsed time in seconds UINT64 RangeMin; //Min address tested UINT64 RangeMax; //Max address tested UINT16 CPUSelMode; //0-Single CPU, 1-Parallel, 2-Round Robin, 3-Sequential INT16 CPUTempMin; //Min CPU temp for duration of test (-1 if N/A) INT16 CPUTempMax; //Max CPU temp for duration of test (-1 if N/A) INT16 CPUTempAve; //Ave CPU temp for duration of test (-1 if N/A) INT16 RAMTempMin; //Min RAM temp for duration of test (-1 if N/A) INT16 RAMTempMax; //Max RAM temp for duration of test (-1 if N/A) INT16 RAMTempAve; //Ave RAM temp for duration of test (-1 if N/A) BOOLEAN ECCSupport;//0 if ECC not supported, != 0 if ECC supported INT8 TestResult; //{0:PASS, 1:INCOMPLETE PASS, -1:FAIL, -2:INCOMPLETE FAIL} UINT32 ErrorCode; // Error code UINT32 NumErrors; //Number of errors from all tests. Must be 0 if Passed == True UINT64 MinErrorAddr;//Lowest address that had an error UINT64 MaxErrorAddr;//Highest address that had an error UINT64 ErrorBits; //Bit coded field showing the bits in error UINT32 NumCorrECCErrors;//Number of detected and corrected ECC errors from all tests. UINT32 NumUncorrECCErrors;//Number of detected but uncorrected ECC errors from all tests. UINT8 Reserved[14]; // For future use UINT16 NumTestsEnabled;// Number of individual tests enabled struct { UINT8 TestNo; // Test ID number UINT16 NumTestsPassed;// Number tests passed for this test number UINT16 NumTestsCompleted;// Number tests completed for this test number UINT32 NumErrors; // Number of errors detected for this test number } AllTests[1]; // Variable-sized array of size=NumTestsEnabled struct SLOTCHIP_ERRINFO { UINT16 SlotChipErrsArrCount; // Size of variable-sized array SlotChipErrs below struct { INT8 Slot; // Slot number (-1 for unknown) INT8 Chip; // Chip number (-1 for unknown) UINT32 NumErrors; // Number of errors detected for this slot/chip combination } SlotChipErrs[1]; } SlotChipErrInfo; } TESTRESULT;

Binary result files cannot be saved manually and can only be saved by specifying the AUTOMODE and AUTOREPORTFMT configuration file parameters. See Configuring MemTest86 for more details about configuration file parameters.

As with HTML report files, binary results can be automatically saved to disk or uploaded to the PXE server, supporting automated workflows such as production line environments.