| .TH memtester "8" "July 2009" "memtester 4" "Maintenance Commands" |
| .SH NAME |
| memtester \- stress test to find memory subsystem faults. |
| .SH SYNOPSIS |
| .B memtester |
| [\f -p PHYSADDR\fR] |
| <\fIMEMORY\fR> |
| [\fIITERATIONS\fR] |
| .SH DESCRIPTION |
| .\" Add any additional description here |
| .PP |
| memtester is an effective userspace tester for stress-testing the memory |
| subsystem. It is very effective at finding intermittent and non-deterministic |
| faults. Note that problems in other hardware areas (overheating CPU, |
| out-of-specification power supply, etc.) can cause intermittent memory faults, |
| so it is still up to you to determine where the fault lies through normal |
| hardware diagnostic procedures; memtester just helps you determine whether |
| a problem exists. |
| .PP |
| memtester will malloc(3) the amount of memory specified, if possible. If |
| this fails, it will decrease the amount of memory requested until it succeeds. |
| It will then attempt to mlock(3) this memory; if it cannot do so, testing |
| will be slower and much less effective. Run memtester as root so that it |
| can mlock the memory it tests. |
| .PP |
| Note that the maximum amount of memory that memtester can test will be less |
| than the total amount of memory installed in the system; the operating system, |
| libraries, and other system limits take some of the available memory. |
| memtester is also limited to the amount of memory available to a single |
| process; for example, on 32-bit machines with more than 4GB of memory, |
| memtester is still limited to less than 4GB. |
| .PP |
| Note that it is up to you to know how much memory you can safely allocate |
| for testing. If you attempt to allocate more memory than is available, |
| memtester should figure that out, reduce the amount slightly, and try again. |
| However, this can lead to memtester successfully allocating and mlocking |
| essentially all free memory on the system -- if other programs are running, |
| this can lead to excessive swapping and slowing the system down to the point |
| that it is difficult to use. If the system allows allocation of more memory |
| than is actually available (overcommit), it may lead to a deadlock, where |
| the system halts. If the system has an out-of-memory process killer (like |
| Linux), memtester or another process may be killed by the OOM killer. |
| .PP |
| So choose wisely. |
| .PP |
| .SH OPTIONS |
| .TP |
| \f -p PHYSADDR\fR |
| tells memtester to test a specific region of memory starting at physical |
| address PHYSADDR (given in hex), by mmap(2)ing /dev/mem. This is mostly of |
| use to hardware developers, for testing memory-mapped I/O devices and similar. |
| Note that the memory region will be overwritten during testing, so it is not |
| safe to specify memory which is allocated for the system or for other |
| applications; doing so will cause them to crash. If you absolutely must test |
| a particular region of actual physical memory, arrange to have that memory |
| allocated by your test software, and hold it in this allocated state, then |
| run memtester on it with this option. |
| .TP |
| \fIMEMORY\fR |
| the amount of memory to allocate and test, in megabytes by default. You can |
| include a suffix of B, K, M, or G to indicate bytes, kilobytes, megabytes, or |
| gigabytes respectively. |
| .TP |
| \fIITERATIONS\fR |
| (optional) number of loops to iterate through. Default is infinite. |
| .SH NOTE |
| .PP |
| memtester must be run with root privileges to mlock(3) its pages. Testing |
| memory without locking the pages in place is mostly pointless and slow. |
| .SH EXIT CODE |
| .PP |
| memtester's exit code is 0 when everything works properly. Otherwise, |
| it is the logical OR of the following values: |
| .TP |
| \f0x01 |
| error allocating or locking memory, or invocation error |
| .TP |
| \f0x02 |
| error during stuck address test |
| .TP |
| \f0x04 |
| error during one of the other tests |
| .SH AUTHOR |
| Written by Charles Cazabon. |
| .SH "REPORTING BUGS" |
| Report bugs to <charlesc-memtester-bugs@pyropus.ca>. |
| .PP |
| .SH COPYRIGHT |
| Copyright \(co 2009 Charles Cazabon |
| .br |
| This is free software; see the file COPYING for copying conditions. There is NO |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |