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 simulate a stressful environment for the operating system.
This test also detects ECC parity errors, memory read errors, and addressing problems, and displays the corresponding virtual memory addresses on failure.
Note - Do not run the vmemtest with fwcamtest at the same time on any Sun Blade system. This will cause the test to fail.
|
vmemtest Swap Space Requirements
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
To reach the dialog box below, right-click on the test name in the System Map and select Test Parameter Options. If you do not see this test in the System Map, you might need to expand the collapsed groups, or your system may not include the device appropriate to this test. Refer to the
SunVTS User's Guide
for more details.
FIGURE 59-1 vmemtest Test Parameter Options Dialog Box
TABLE 59-1 vmemtest Options
vmemtest Options
|
Description
|
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.
|
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.
|
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.
|
Contiguous Errors
|
Specifies the number of memory errors that occur on successive memory locations before testing stops.
|
Test Method
|
-
The default selection is the Sequential test. The whole memory is tested from the beginning address to the end address in a sequence.
-
Address Random test: Randomly selects memory addresses to test.
-
Page Striding test: Non-contiguous memory test, implemented sequentially and non-sequentially.
--Sequential test: tests from the first page to the last page, withn a specified test range. Only one word is tested per page.
--Non-sequential test: tests randomly from first to last page, within a specified memory range. Goes back and forth testing one word per page until all pages are tested.
-
Block Copy test: Writes and reads data between two memory blocks. Each memory block is half the memory to be tested.
-
File Caching test: Aimed at improving performance through the use of file caching in the Solaris kernel. This test is useful for large memory configurations. This test takes 30 to 70% less time than the Sequential test method.
|
Predefined Pattern
|
Select one of the following patterns to use for the test:
-
Address
--uses the virtual addresses of the tested memory locations.
-
walk_1
--uses a pattern that starts with 0x80000000 through 0x00000001
-
walk_0
--uses a pattern that starts with 0x7fff7fff through 0x7fff7ffe
-
0x00000000
--uses all ones and zeros for testing
-
0x5aa55aa5
--uses 0x5aa55aa5 and 0xa55aa55a patterns
-
0xdb6db6db
--uses 0xdb6db6db and 0x24924924 patterns
-
Checkerboard
--uses 0x55555555 and 0xaaaaaaaa patterns.
-
UserDefined
--uses the pattern that is specified in the User Defined Pattern area (see below).
|
User Defined Pattern
|
Only used if the Predefined Pattern is set to
UserDefined
. The pattern specified should be in the form of an 8-digit, hexadecimal number such as
0x2a341234
.
|
Instance
|
Specifies how many copies of the
vmemtest
test to run.
|
vmemtest Test Modes
TABLE 59-2 vmemtest Test Modes
Test Mode
|
Supported?
|
Description
|
Connection
|
No
|
Not supported.
|
Functional
(Offline)
|
Yes
|
Runs the full set of tests.
|
In Offline Functional mode,
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=
n
,amount=
n
,bdinfo=
n
,cerr=
number
,
type=
n
,pp=
pattern
,
up=
hex_address
TABLE 59-3 vmemtest Command-Line Syntax
Argument
|
Explanation
|
mode=
Page
|
Regular
|
Specifies which mode of the
vmemtest
to run. Choose:
-
Page
--tells the write/read memory test to proceed one system memory page at a time.
-
Regular
--uses the
valloc
option to allocate the entire assigned memory, which is read and compared one long word at a time.
|
reserve
=
n
|
Specifies the amount of MB of virtual memory to reserve in addition to the default amount.
|
amount=
n
|
Specifies the number of MB of memory to be tested instead of the default (maximum) amount.
|
bdinfo=
n
|
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=
n
|
Specifies the maximum number of contiguous errors to be dumped when a memory error occurs.
|
type=
seq+rand+page+ block+file
|
-
seq--Uses Sequential test method
-
rand--Uses Random Address test method
-
page--Uses Page Striding test method
-
block--Uses Block Copy method
-
file--Uses File Caching test method
|
pp=
pattern
|
Specifies the test pattern to use for testing. Valid pattern entries are:
-
Address
--uses the virtual addresses of the tested memory locations.
-
walk_1
--uses a pattern that starts with 0x80000000 through 0x00000001.
-
walk_0
--uses a pattern that starts with 0x7fff7fff through 0x7fff7ffe.
-
0x00000000
--uses all ones and zeros for testing.
-
0x5aa55aa5
--uses
0x5aa55aa5
pattern.
-
0xdb6db6db
--uses
0xdb6db6db
pattern.
-
Checkerboard
--uses
0x55555555
and
0xaaaaaaaa
patterns.
-
Random--uses a random data pattern.
-
UserDefined
--uses the pattern that is specified in the User Defined Pattern area (see below).
|
up=
hex_address
|
Only used if the
pp
argument is set to
UserDefined
. The pattern specified should be in the form of a 8-digit, hexadecimal number such as
0x2a341234
.
|
Note 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.
|
SunVTS 5.0 Test Reference Manual
|
816-1667-10
|
|
Copyright
© 2002, Sun Microsystems, Inc. All rights reserved.