|
Prev: system restart required after driver unload before installing it a
Next: Windows XP: embedding signed driver is not report as signed in device manager
From: david.grimbichler on 23 Apr 2008 10:14 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 24 Apr 2008 00:03 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 24 Apr 2008 03:22 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 25 Apr 2008 04:59
> 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. |