memory - memory test
sh memory.stf
vmemtest [ standard_arguments ] -o option=value
The memory.stf shell script executes the vmemtest test. The script loops for the length of time (in seconds) specified by the RUNTIME environment variable, repeatedly executing vmemtest.
When run as a part of the Level 2 System Certification tests, vmemtest tests virtual memory. That is, it tests the combination of physical memory and the swap. It uses the valloc(2) system call to allocate, write, read, and compare virtual memory. These operations normally cause heavy paging activity on the system and simulate an operating system environment. This test also detects ECC parity errors, memory read errors, and addressing problems. This test displays the corresponding virtual memory addresses on failure.
When run as a part of the Level 1 System Certification tests, vmemtest runs the same operations as for the Level 2 tests, but only on physical memory.
You can use the -o option to set the following values:
- mode=page or mode=regular
- Specifies which mode of the vmemtest to run. The page value tells the write/read memory test to proceed one system memory page at a time. The regular value uses valloc to allocate the entire assigned memory, which is read and compared one long word at a time.
- reserve=number
- Specifies the number of Mbytes of virtual memory to reserve in addition to the default amount. The default amount is 0 Mbytes for Level 1 testing and 64 Mbytes for Level 2 testing.
- amount=number
- Specifies the number of Mbytes of memory to be tested instead of the default amount. The default amount to be tested for Level 1 is half the maximum number of Mbytes of memory. The default amount of memory to be tested for Level 2 is the maximum number of Mbytes of memory.
- cerr=number
- Specifies the maximum number of contiguous errors to be dumped when a memory error occurs. The default is ten contiguous errors.
Before you execute memory.stf, set the RUNTIME variable to specify the length of time (in seconds) that the script should run.
In the following example, the RUNTIME variable is set to 1200 (20 minutes).
# RUNTIME=1200 export RUNTIMEThe memory.stf script also uses the temporary file /tmp/level.dat to determine the level at which it should test, and hence the amount of memory that will be tested. The contents of the /tmp/level.dat file is either L1 to run at Level 1, or L2 to run at Level 2. If /tmp/level.dat is not present, or if it contains anything other than L1 or L2, the test runs at Level 2 (both physical memory and swap are tested). The following examples show how to create the contents of /tmp/level.dat:
# echo "L1" > /tmp/level.dator:
# echo "L2" > /tmp/level.dat
The memory.stf script outputs PASS or ERROR messages as appropriate, as well as the output generated by vmemtest.
The vmemtest test outputs the test status to standard output.
The memory.stf script loops vmemtest for the amount of time specified by RUNTIME. The script waits for any instances of vmemtest to finish before it exits.
The vmemtest test runs for up to 20 minutes.
This test can run concurrently with mcpu after the flp test finishes.
# sh ./memory.stf # sh ./vmemtest -f -v -o amount=128
valloc(2)
Copyright 2005 Sun Microsystems, Inc. All rights reserved.