Testing RAM from userspace / question about memmap= arguments

From: Siva Prasad
Date: Thu Dec 20 2007 - 12:11:57 EST


Hi Matthew,

I worked on some thing similar. For one of our customer product that goes to defense and security markets, we had to support maximum possible memory test. We implemented a mechanism of pre-test to test the memory with walking 1's and 0's just before Linux kernel starts allocating serious memory for its use. That way, coverage was almost 99%. Once Linux boots, we do a very through test using various algorithms, however as you said coverage of memory is little less when we test the system after Linux boots up completely.

memtest86+ started as a very good alternative, until customer's customer started complaining about memory issues. Then we had no choice but to take this route and implement it ourselves from the scratch.

If you want 100% coverage, it may not be possible unless you do it in BIOS early on. If you take the route of implementing some simple memory test in Linux kernel before it starts allocating memory, you get very good % of coverage. Good Luck.

- Siva


Date: Thu, 20 Dec 2007 14:17:10 +0000

From: Matthew Bloch <matthew@xxxxxxxxxxxxxx>

Subject: Re: Testing RAM from userspace / question about memmap=

arguments

To: linux-kernel@xxxxxxxxxxxxxxx

Message-ID: <fkdth6$d7g$1@xxxxxxxxxxxxx>

Content-Type: text/plain; charset=ISO-8859-1



Jon Masters wrote:

> On Tue, 2007-12-18 at 17:06 +0000, Matthew Bloch wrote:

>

>> I can see a few potential problems, but since my understanding of the

>> low-level memory mapping is muddy at best, I won't speculate; I'd just

>> appreciate any more expert views on whether this does work, or could be

>> made to work.

>

> Yo,

>

> I don't think your testing approach is thorough enough. Clearly (knowing

> your line of business - as a virtual machine provider), you want to do

> pre-production testing as part of your provisioning. I would suggest

> instead of using mlock() from userspace of simply writing a kernel

> module that does this for every page of available memory.



Yes this is to improve the efficiency of server burn-ins. I would

consider a kernel module, but I still wouldn't be able to test the

memory in which the kernel is sitting, which is my problem. I'm not

sure even a kernel module could reliably test the memory in which it is

residing (memtest86+ relocates itself to do this). Also I don't see how

userspace testing is any less thorough than doing it in the kernel; I

just need a creative way of accessing every single page of memory.



I may do some experiments with the memmap args, some bad RAM and

shuffling it between DIMM sockets when I have the time :)



--

Matthew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/