Changelog:
Version 4.2.1
3 October 2010
-fix offsets/addresses were not being reported correctly in test failure
messages. Thanks: Anton Sergeev.
Version 4.2.0
30 July 2010
-define _FILE_OFFSET_BITS to 64 by default in conf-cc, which causes some
32-bit systems with larger-than-32-bit address spaces to have a 64-bit off_t,
allowing testing of larger chunks of memory. Thanks to Steven A. Falco for
the suggestion. Let me know if this definition causes problems for anyone.
-add tests of 8-bit-wide and 16-bit-wide random writes, to enable verifying
the correct operation of hardware. Thanks: Dick Hollenbeck. If these tests
trigger unaligned access problems on your platform, you can eliminate these
tests by removing the -DTEST_NARROW_WRITES definition from the conf-cc file.
- fix portability issue with MAP_LOCKED flag. Thanks: Scott Haneda.
- remove debugging output accidentally left in v.4.1.0.
- cleanups
- memtester.h was missing from the 4.1.0 tarball; release update to
fix that. Thanks: Owen Leonard.
- added the ability to test a specific physical region of memory
(by mmap'ing /dev/mem) with the new -p option, which takes a
hex starting address as a value. This is mostly of use to
developers trying to verify memory or I/O mapped devices (on
an embedded system, for instance). Thanks: Allon Stern.
- re-add the ability to set a suffix on the memory to allocate:
"3G", "128K", etc, mostly for use with the above new feature,
where the "memory" to be tested is less than a megabyte, but
also useful for users wanting to test many gigabytes; you no
longer have to do the conversion-to-megs in your head.
- documentation updates and clarifications.
21 November 2007
- add a startup check for amount of memory being greater than the possible
address space; prevents user confusion on 32-bit systems that use addressing
tricks to have >4GB total system memory. Thanks: Michael Kelly.
- documentation updates
-fix a bug in the align-to-page logic which may have prevented memtester
from mlock()ing the memory it was trying to test on some systems.
Thanks: Baif Chen.
- test algorithm improvement: the walking 0 bits test was only
walking the 0 bit in one direction, instead of walking it up
and back down the line the way it was intended to. Thanks: Tim
Rule.
- formatting cleanups.
INSTALLATION_DIRS, as well as all occurrences of ${PREFIX}/man with
${PREFIX}/${PKGMANDIR}.
Fixes PR 35265, although I did not use the patch provided therein.
following packages because they don't use "it" and "setup check"
as BUILD_TARGET and INSTALL_TARGET, respectively:
devel/bglibs
mail/mailfront
mail/qmail-qfilter
sysutils/memtester
sysutils/qlogtools
Since there's only one consumer of BGWARE_INSTALLER, and future
bgware will use bg-installer from bglibs, move the do-install
routine directly into qlogtools.
-change to the method of allocating and locking memory; if we get EPERM
when trying to mlock(), reset the amount of memory desired to the original
amount and try again without mlock(). The reason for this is that on many
systems, mlock() won't return EPERM until after having returned ENOMEM for
a larger amount. The new behaviour allows processes without mlock privileges
to still test the fully-specified amount or as much memory as can be
allocated. Thanks for the suggestion and testing to Dan Bradley.
-make memtester's exit code meaningful. See the manpage for its meaning.
Thanks to Wurzel Parsons-Keir, who sent a patch for the code, so I only had
to document it.
-small changes to enable building with dietlibc and a few other environments
that don't even attempt to provide the various Posix definitions.
-cosmetic fixes to output.
-restore the reduce-and-retry loop of memory locking from version 2.
The version 4 rewrite was mainly to accomplish three things:
(1) the previous code was basically a hack, and was ugly.
(2) to make the code more portable. The previous version required some
hackery to compile on some systems.
(3) to make the code fully 64-bit aware. The previous version worked
on 64-bit systems, but did not fully stress the memory subsystems
on them -- this version should be better at stress-testing 64-bit
systems.
pkgsrc changes:
* Use the gzipped tarball (the bzipped one is no more).
* Tweak COMMENT.
* GNU make is no longer needed.
<pancake at phreaker.net> with some minor changes by me.
memtest is a utility for testing the memory subsystem in a computer
to determine if it is faulty. The original source was by Simon
Kirby <sim@stormix.com>. I have by this time completely rewritten
the original source, and added many additional tests to help catch
borderline memory. I also rewrote the original tests (which catch
mainly memory bits which are stuck permanently high or low) so that
they run approximately an order of magnitude faster.