From: david.grimbichler on
Hi all,
My project is to create the NT-equivalent of Linux's BadRAM kernel
patch (http://rick.vanrein.org/linux/badram/).
Basically, it marks bad ram addresses as reserved in kernel mode so
that nothing else can use them.
We suppose having a list of bad addresses (built by memtest86 or so).

Here are my questions :
1. Do you think it could be useful for someone (in Windows) ?
2. After reading some docs, I think I could achieve my goal by using
either MmMapIoSpace or the pair MmAllocatePagesForMdl +
MmMapLockedPagesSpecifyCache. What do you think about it ? Am I
wrong ? If so, what would you use ?

Thanks for answering.
Sincerely,
David G.
From: Tim Roberts on
david.grimbichler(a)gmail.com wrote:
>
>My project is to create the NT-equivalent of Linux's BadRAM kernel
>patch (http://rick.vanrein.org/linux/badram/).
>Basically, it marks bad ram addresses as reserved in kernel mode so
>that nothing else can use them.
>We suppose having a list of bad addresses (built by memtest86 or so).
>
>Here are my questions :
>1. Do you think it could be useful for someone (in Windows) ?

No, for many reasons.

First, bad RAM in itself is extremely uncommon. RAM MTBF is quite long.
Second, when a RAM failure occurs, only a fraction of failures are limited
to a single set of addresses; many of the failures affect whole address
lines. Third, the typical Windows user is not sophisticated enough to know
that he would need such a tool, much less how to use it.

Fourth, RAM is cheap. When one of those rare memtest86 errors occur, the
right answer is to replace the RAM. It's going to take the better part of
a day to figure out there is a RAM problem, find memtest86 and run it,
isolate a failure to a set of addresses, and configure a driver to work
around it. Two gigabytes of RAM costs less than an hour's salary.
--
Tim Roberts, timr(a)probo.com
Providenza & Boekelheide, Inc.
From: david.grimbichler on
I totally agree with you, and I love your following remark, which is
entirely true : "Two gigabytes of RAM costs less than an hour's
salary".

My post mainly aimed at asking confirmation for any way to reserve a
specific memory address
(by the way, am I wrong using the mentioned kernel functions ?), just
like AGP drivers I think.

Sincerely,
David G.

On 24 avr, 06:03, Tim Roberts <t...(a)probo.com> wrote:
> david.grimbich...(a)gmail.com wrote:
>
> >My project is to create the NT-equivalent of Linux's BadRAM kernel
> >patch (http://rick.vanrein.org/linux/badram/).
> >Basically, it marks bad ram addresses as reserved in kernel mode so
> >that nothing else can use them.
> >We suppose having a list of bad addresses (built by memtest86 or so).
>
> >Here are my questions :
> >1. Do you think it could be useful for someone (in Windows) ?
>
> No, for many reasons.
>
> First, bad RAM in itself is extremely uncommon. RAM MTBF is quite long.
> Second, when a RAM failure occurs, only a fraction of failures are limited
> to a single set of addresses; many of the failures affect whole address
> lines. Third, the typical Windows user is not sophisticated enough to know
> that he would need such a tool, much less how to use it.
>
> Fourth, RAM is cheap. When one of those rare memtest86 errors occur, the
> right answer is to replace the RAM. It's going to take the better part of
> a day to figure out there is a RAM problem, find memtest86 and run it,
> isolate a failure to a set of addresses, and configure a driver to work
> around it. Two gigabytes of RAM costs less than an hour's salary.
> --
> Tim Roberts, t...(a)probo.com
> Providenza & Boekelheide, Inc.

From: Pavel Lebedinsky [MSFT] on
> Basically, it marks bad ram addresses as reserved in kernel mode so
> that nothing else can use them.
> We suppose having a list of bad addresses (built by memtest86 or so).

Vista has a BCD parameter (BADMEMORYLIST) that I think does
that. See "bcdedit /? types bootapp".

> 2. After reading some docs, I think I could achieve my goal by using
> either MmMapIoSpace or the pair MmAllocatePagesForMdl +
> MmMapLockedPagesSpecifyCache. What do you think about it ? Am I
> wrong ? If so, what would you use ?

There is no way to do that reliably when the OS is running. If the
page happens to be already in use, MmAllocatePagesForMdl
will fail. MmMapIoSpace is even worse - if you choose a caching
type that conflicts with an existing mapping, you can corrupt memory.

--
This posting is provided "AS IS" with no warranties, and confers no
rights.