aboutsummaryrefslogtreecommitdiff
path: root/sys/doc/memory-test.doc
diff options
context:
space:
mode:
Diffstat (limited to 'sys/doc/memory-test.doc')
-rw-r--r--sys/doc/memory-test.doc40
1 files changed, 40 insertions, 0 deletions
diff --git a/sys/doc/memory-test.doc b/sys/doc/memory-test.doc
new file mode 100644
index 000000000000..cda44f7f1a48
--- /dev/null
+++ b/sys/doc/memory-test.doc
@@ -0,0 +1,40 @@
+Message-Id: <199403270118.RAA00584@corbin.Root.COM>
+From: David Greenman <davidg@root.com>
+To: "Jordan K. Hubbard" <jkh@whisker.hubbard.ie>
+Cc: csgr@alpha.ru.ac.za, freebsd-hackers@freefall.cdrom.com
+Subject: Re: Boune Buffers : Crash and Burn ^&%$&&^%
+Date: Sat, 26 Mar 1994 17:18:04 -0800
+
+>Ummm. I suppose it would be stupid to wonder whether or not this is good
+>memory you just stuck in there? :-) It does raise the point: David - what
+>does your memory test do when it finds memory errors?
+
+ The order of events is like this:
+
+1) Determine amount of memory by looking at CMOS.
+2) Do memory test of this memory, starting at the highest address and going
+backwards.
+3) If a bad page is found, TRUNCATE the physical memory to end just before
+this page. Continue until all memory is tested.
+
+ So all memory past the lowest bad page is ignored. The number of pages that
+were chopped are then reported as # of "bad pages" when the memory information
+is printed. If there aren't any, then nothing is printed.
+ The rationale for not constructing a bit mask and weeding out just the
+pages that test bad is a flimsy one - doing so would have required moving the
+memory test into the machine independant portion of the VM system, and would
+have required much trickier coding. Since the main purpose of this was to
+verify that what the CMOS was telling us was correct, and also to identify
+when there is bad memory, trying to make the best of it when there really is
+some bad memory didn't seem important to me. ..but hey, if somebody wants to
+recode it, I won't complain. :-)
+ The problem that Terry eluded to, but didn't state, is where you test memory
+for the purpose of determining how much you have. This is problematic because
+many memory controllers will generate a fatal NMI when you 'test' non-existant
+memory (i.e. the parity check fails, and the condition is handled less than
+gracefully), and can also happen with some memory controllers that do strange
+address wrapping in the non-existant memory area. Compaq machines are alledged
+to be suseptable to one of these two problems.
+
+-DG
+