Stress Test: memory

### TEST NAME

> memory - memory test

### SYNOPSIS

> `sh memory.stf`

> `vmemtest [ standard_arguments ] `-o` option=value`

### DESCRIPTION

> 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.

### OPTIONS

> 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.

### SETUP

> 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 RUNTIME

> The `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.dat

> or:

> >     # echo "L2" > /tmp/level.dat

### OUTPUT

> 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.

### DURATION

> 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.

### POSSIBLE CONCURRENT TESTS

> This test can run concurrently with `mcpu` after the `flp` test finishes.

### EXAMPLES

> >     # sh ./memory.stf
> >     # sh ./vmemtest -f -v -o amount=128

### REFERENCES

> `valloc`(2)

Copyright 2005 Sun Microsystems, Inc. All rights reserved.