Go to main content

Oracle® x86 Server Diagnostics, Applications, and Utilities Guide

Exit Print View

Updated: June 2016
 
 

memory test

The memory test command tests main memory. The command tests a range of main DRAM using the test algorithm, as defined by command options, and for a time duration that is defined by the time option, on one or more processors.

Command Syntax

udiag memory test { ALGORITHM } [ RANGE ] [ TIME ] [ MP ]

Options

Options
Descriptions
ALGORITHM = addr0 | pat0 | pat1 | walk1 | walk0 | rand0 | rand1 | block0 | refresh0
addr0
Tests the uniqueness of each address location.
pat0
Fills memory with all 0's and verifies (for stuck-at-1).
pat1
Fills memory with all 1's and verifies (for stuck-at-0).
walk1
Fills memory with 0x01 shifted left 8 times and verifies data.
walk0
Fills memory with 0xFE shifted left 8 times and verifies data.
rand0
Fills memory with random data, verifies, inverts and verifies data again.
rand1
Writes random data at random locations, verifies, inverts and verifies data again.
block0
Divides memory range into two blocks with random data. Data are swapped between the blocks (copied reversed top-down or bottom-up). Data are swapped again and the memory contents are verified.
refresh0
Fills memory with all 0's, waits for 5 minutes and verifies. Then it fills memory with all 1's, waits for 5 minutes and verifies data.
RANGE = -s <start_address> [-e <end_address_plus_one>]
-s
Specifies the starting address of a memory block to test. The address is entered in hexadecimal format and must be aligned at 4KB boundary.
-e
Specifies the end address of a memory block to test plus 1 byte. If the flag is not given, the test uses the end of the contiguous block selected by the UEFI memory allocation service. If RANGE is not given, the test uses the biggest available memory block. Note that <start_address> must be lower than <end_address>.
TIME = -time <test_time_in_seconds>
-time
Specifies maximum test time in seconds in hexadecimal. The default is 0, which indicates that there is no time limit.

Resource Requirements

ANY_PROC; MULTIPLE_INSTANCES

Examples

To run the addr0 test between a specific address range, type:

fs0:/> udiag memory test addr0 -s 100000000 -e 110000000

To run the walk1 test between a specific address range, type:

fs0:/> udiag memory test walk1 -s 100000000 -e 110000000

To run the rand0 test on all processors, type:

fs0:/> udiag memory test rand0 -np all

To run the rand1 test on specific processors for a specified amount of time (in seconds), type:

fs0:/> udiag memory test rand1 5f/5e/5d/1/2/3 -time 258