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