kernel ram testing

From: Dr. David Alan Gilbert (
Date: Sat Jun 08 2002 - 20:10:38 EST

  After a particularly odd experience with a duff dimm a few weeks ago* I
started thinking again about building continuous RAM testing into the kernel.

I've so far put together a little piece of code that regularly checksums
the kernel text (from _text to _etext). But now I have some questions:

 1) _text and _etext seem to be defined differently on different
 architectures (some don't define both). Ideally I think I'd like just
 the kernel text in a way that can be extracted with objdump at build
 time (so I can calculate the sum then for comparison). Suggestions on
 whether _text and _etext are appropriate would be useful.

 2) I want to test the rest of RAM as well - as much as possible,
 repeatedly while the system is running. I could repeatedly allocate,
 test and deallocate a page. But will I keep getting the same page
 rather than circling through the rest of RAM? Can I ask for particular
 physical pages portably?

 3) I also want to test pages that are being used by the buffers and
 processes; I'd really like to kick a page onto a different physical
 page so I can test it - is this easily possible? (I could lock the
 whole machine down, copy the page somewhere else and then test it, but
 I fear this would take too long).

At the moment my code lives in a kernel thread (kintegrityd) that runs
and then sleeps for a while before running again (at lowest priority
above idle). (I'm presently fiddling with this under user mode linux

Thoughts and suggestions welcome.


(*) The DIMM appears, from memtest86, to have had an approximately 4MB
range where one bit in 32bits (or was it perhaps wider) was stuck low.
First noticed by a mismatch on md5sums of a downloaded debian package
and by ' characters appearing in an od I did of the corrupted package on
a machine that otherwise appeared stable.

 ---------------- Have a happy GNU millennium! ----------------------
/ Dr. David Alan Gilbert | Running GNU/Linux on Alpha,68K| Happy \
\ gro.gilbert @ | MIPS,x86,ARM, SPARC and HP-PA | In Hex /
 \ _________________________|_____ |_______/
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sat Jun 15 2002 - 22:00:13 EST