2007-09-17 16:27:24

by David Madore

[permalink] [raw]
Subject: patch/option to wipe memory at boot?

Hi,

Is there a patch or a boot option or something which wipes all
available (physical) RAM at boot (or better, fills it with a fixed
signature like 0xdeadbeef)? I'm getting phony ECC errors and I'd like
to test whether they go away when the RAM is properly initialized.
Also, I'd like to know exactly which parts of RAM are being used and
which are untouched since boot (hence the 0xdeadbeef signature).

If this patch/option doesn't exist, can anyone give me a hint as to
where and how it would be best to add this? (I'm afraid I'm very
ignorant as to how Linux sets up its RAM mapping.) I'm concerned
about x86 and x86_64.

PS: I'm not finicky: it's all right if a couple of megabytes at the
bottom of RAM are not scrubbed (I'm more interested about the top
gigabyte-or-so), especially if they're guaranteed to be used by the
kernel.

Happy hacking,

--
David A. Madore
([email protected],
http://www.madore.org/~david/ )


2007-09-17 18:12:05

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: patch/option to wipe memory at boot?

David Madore wrote:
> Is there a patch or a boot option or something which wipes all
> available (physical) RAM at boot (or better, fills it with a fixed
> signature like 0xdeadbeef)? I'm getting phony ECC errors and I'd like
> to test whether they go away when the RAM is properly initialized.
> Also, I'd like to know exactly which parts of RAM are being used and
> which are untouched since boot (hence the 0xdeadbeef signature).
>
> If this patch/option doesn't exist, can anyone give me a hint as to
> where and how it would be best to add this? (I'm afraid I'm very
> ignorant as to how Linux sets up its RAM mapping.) I'm concerned
> about x86 and x86_64.
>
> PS: I'm not finicky: it's all right if a couple of megabytes at the
> bottom of RAM are not scrubbed (I'm more interested about the top
> gigabyte-or-so), especially if they're guaranteed to be used by the
> kernel.
>

Boot memtest86 for a little while before booting the kernel? And if you
haven't already run it for a while, then that would be your first step
anyway.

J

2007-09-17 20:44:41

by David Madore

[permalink] [raw]
Subject: Re: patch/option to wipe memory at boot?

On Mon, Sep 17, 2007 at 11:11:52AM -0700, Jeremy Fitzhardinge wrote:
> Boot memtest86 for a little while before booting the kernel? And if you
> haven't already run it for a while, then that would be your first step
> anyway.

Indeed, that does the trick, thanks for the suggestion. So I can be
quite confident, now, that my RAM is sane and it's just that the BIOS
doesn't initialize it properly.

But I'd still like some way of filling the RAM when Linux starts (or
perhaps in the bootloader), because letting memtest86 run after every
cold reboot isn't a very satisfactory solution.

Happy hacking,

--
David A. Madore
([email protected],
http://www.madore.org/~david/ )

2007-09-19 18:33:29

by Chris Snook

[permalink] [raw]
Subject: Re: patch/option to wipe memory at boot?

David Madore wrote:
> On Mon, Sep 17, 2007 at 11:11:52AM -0700, Jeremy Fitzhardinge wrote:
>> Boot memtest86 for a little while before booting the kernel? And if you
>> haven't already run it for a while, then that would be your first step
>> anyway.
>
> Indeed, that does the trick, thanks for the suggestion. So I can be
> quite confident, now, that my RAM is sane and it's just that the BIOS
> doesn't initialize it properly.
>
> But I'd still like some way of filling the RAM when Linux starts (or
> perhaps in the bootloader), because letting memtest86 run after every
> cold reboot isn't a very satisfactory solution.

Bootloaders like to do things like run in 16-bit or 32-bit mode on boxes where
higher bitness is necessary to access all the memory. It may be possible to do
this in the bootloader, but the BIOS is clearly the correct place to fix this
problem.

-- Chris

2007-09-20 11:18:30

by Bodo Eggert

[permalink] [raw]
Subject: Re: patch/option to wipe memory at boot?

Chris Snook <[email protected]> wrote:
> David Madore wrote:
>> On Mon, Sep 17, 2007 at 11:11:52AM -0700, Jeremy Fitzhardinge wrote:

>>> Boot memtest86 for a little while before booting the kernel? And if you
>>> haven't already run it for a while, then that would be your first step
>>> anyway.
>>
>> Indeed, that does the trick, thanks for the suggestion. So I can be
>> quite confident, now, that my RAM is sane and it's just that the BIOS
>> doesn't initialize it properly.
>>
>> But I'd still like some way of filling the RAM when Linux starts (or
>> perhaps in the bootloader), because letting memtest86 run after every
>> cold reboot isn't a very satisfactory solution.
>
> Bootloaders like to do things like run in 16-bit or 32-bit mode on boxes where
> higher bitness is necessary to access all the memory. It may be possible to
> do this in the bootloader, but the BIOS is clearly the correct place to fix
> this problem.

Just an idea: Does this BIOS have an option to (not) skip the full memory
test on bootup?
--
Have you ever noticed that the Klingons are all speaking unix?
"Grep ls awk chmod." "Mknod ksh tar imap."
"Wall fsck yacc!" (that last is obviously a curse of some sort)
-- Gandalf Parker