Chapter 42 Virtual Memory Test (vmemtest)
The vmemtest checks virtual memory; that is, it tests the combination of physical memory and the swap partitions of the disk(s).
Note -
This test may not stop immediately after being disabled.
This test uses the Solaris valloc (page aligned) system call to allocate, write, read, and compare virtual memory. These operations normally cause heavy paging activity on the system and simulates a stressful environment for the operating system. This test also detects ECC parity errors, memory read errors, addressing problems, and displays the corresponding virtual memory addresses on failure.
Handling Swap Space
Running this test places a significant burden on the operating system, since it uses the majority of swap space available for testing. You should use the vmemtest swap space reserve option when non-SunVTS test processes are started after SunVTS testing has started. See "Swap Space Requirements" in the SunVTS
User's Guide for a complete discussion of swap space requirements.
vmemtest Options
Figure 42-1 vmemtest Option Menu
Table 42-1
vmemtest Options
|
vmemtest Options
|
Description
|
|
vmemtest Configuration
|
The amount of memory listed in the configuration field is equivalent to the sum of the used and available swap space amounts returned by the swap
-s command. It indicates the amount of virtual memory found, rounded up to the nearest Kbyte.
|
|
Test Amount
|
An amount can be specified to test the virtual memory, instead of the default. Specifying a number greater than the available memory, can cause vmemtest or other running tests to fail.
|
|
Mode
|
Two modes are available:
When the stress test execution option is selected, the vmemtest allocates the entire assigned system memory (through valloc), writing from beginning to end. The memory is then read back and compared with the original pattern, one long word at a time.
|
|
Reserve
|
The Reserve option specifies the amount of memory to reserve from being tested by vmemtest. The reserved space is used for other processes running concurrently with the or SunVTS tests. The Reserve option can be used to reserve memory in addition to the default. This option applies only to a specific instance. Trying to reserve more memory than what is assigned to be tested by this instance will cause the test to fail.
|
vmemtest Test Modes
This test is only available in the Functional test mode. In this mode the, vmemtest writes a pattern to an amount of virtual memory specified by the user. Then the data is read back and compared. If there is a miscompare, the data is read again and compared. Whenever there is a miscompare, the virtual address is reported. When there is a miscompare on recomparison, an attempt is made to convert the virtual address to the physical address if the SunVTS diagnostic driver is installed.
vmemtest Command Line Syntax
/opt/SUNWvts/bin/vmemtest standard_arguments -o mode=type, reserve=number,amount=number,bdinfo=number,cerr=number
Table 42-2
vmemtest Command Line
Syntax
|
Argument
|
Explanation
|
|
mode=type
|
Specifies which mode of the vmemtest you want to run; you can choose between page mode, which tells the write/read memory test to proceed one system memory page at a time, and regular, which valloc's the entire assigned memory which is read and compared, one long word at a time.
|
|
reserve=number
|
Specifies the amount of Mbytes of virtual memory to reserve in addition to the default amount.
|
|
amount=number
|
Specifies the number of Mbytes of memory to be tested instead of the default amount.
|
|
bdinfo=number
|
Provides the board number information for all the CPU/memory boards in the system. For example, if board 0 and board 5 have memory, then the bdinfo=33 (2**5+2**0).
|
|
cerr=number
|
Specifies the maximum number of contiguous errors to be dumped when a memory error occurs.
|
Note -
64-bit tests are located in the sparcv9 subdirectory: /opt/SUNWvts/bin/sparcv9/testname. If a test is not present in this directory, then it may only be available as a 32-bit test. For more information refer to "32-Bit and 64-Bit Tests".
vmemtest Error Messages
Table 42-3
vmemtest Error Messages
|
|
Error Message
|
Probable Cause(s)
|
Recommended Action
|
|
6001
|
setrlimit(RLIMIT_DATA) failed
to set to RLIM_INFINITY: error_message
|
Failed to increase the size of test process's heap to 2GB
(fatal error).
|
|
|
6002
|
Test terminated
after finding maximum number (number)
of noncontiguous errors
|
Fatal error.
|
|
|
6003
|
msync() failed: error_message
|
Failed to synchronize memory with physical storage (fatal error).
|
|
|
6004
|
Test terminated
after finding miscompared data
|
Test failed (fatal error).
|
|
|
8001
|
Test
completed. Found data noncontiguous
miscompare errors
|
Suspect swap partition(s)
(fatal error).
|
Consult your authorized Sun service provider.
|
|
Suspect SCSI controller.
|
|
|
Faulty system software.
|
|
|
8002
|
Increase swap space
to allocate at least number MB
from the process' heap
|
Failed to increase mem process' heap storage.
|
|
|
8003
|
Attempt to reserve
more than what's been assigned
|
Fatal error.
|
Reduce the "reserve" amount.
|
|
8004
|
valloc(address)
failed: error_message
|
Fatal error.
|
Increase swap space or reduce the reserve amount.
|
|
8005
|
Open(file_name)
failed: error_message
|
Failed to open the file file_name used in the "page" mode (fatal error).
|
|
|
8006
|
mmap() virtual
address address to file_name failed: error_message
|
Failed to map a region at the virtual address of the file file_name used in the "page" mode (fatal error).
|
|
|
8007
|
munmap(address)
failed: error_message
|
Failed to unmap a region at the virtual address of the file file_name used in the "page" mode (fatal error).
|
|
|
8008
|
close() failed
on file_name: error_message
|
Fatal error.
|
|
|
8009
|
Not enough space
to store miscompare information
|
Failed to allocate space to store miscompare data
(fatal error).
|
Increase swap space or reduce the load on the system.
|
|
8010
|
swapctl() failed: error_message
|
Failed to obtain the amount of swap space configured in the system (fatal error)
|
|
| 8011 | calloc failed: error | Fatal error. | |
| 8012 | getitimes() error: error | Fatal error. | |