Is there any hope to have access to the highmem through /dev/mem, or a
similar device? Or did I miss an already existing method?
Rationale:
These days, bad RAM seems to become dramatically frequent. We have here
a PC with a few bad bits (switching to ECC is in project), but memtest86
did not find them. Recently, sshd started to segfault. Using cmp -lb
with an uncorrupted version we found the bad bit in the file, and then
looked for it in the phyical memory with `xxd /dev/mem | grep'. We found
it, disabled the area using mem= boot parameter.
Now this PC has a crontab that will write pseudo-random data in the
disabled area, and later read it back and compare it with the original
to find all bad bits.
Then I have another PC with bad RAM, I also discovered a file affected,
and tried the same method. Unfortunately the grep failed. The reason is
likely to be that the file was in highmem.
PS: please Cc me the answers.
Regards,
--
Nicolas George
Le tridi 13 vent?se, an CCXI, Nicolas George a ?crit?:
> Is there any hope to have access to the highmem through /dev/mem, or a
> similar device? Or did I miss an already existing method?
Since nobody answered, I suppose that at least I did not miss something
obvious. Si I tried to write it.
What I understoud is that the way to access the byte at physical address
a is to kmap(mem_map[o >> PAGE_SHIFT]), and access at offet
o % PAGE_SHIFT (and then kunmap it). Perharps it is very ix86-centered.
Since it did not crash my PC, and it gave the same data as /dev/mem, I
think I was not totally wrong.
The code is available at <URL:
http://www.eleves.ens.fr/home/george/info/prg/highmem.c >. The write
part is not yet done, but since it is very similar to read, it should be
really straightforward. Nevertheless I will wait a bit before trying it.
Regards,
--
Nicolas George