• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Skipping badram in windows

RelaxTheMind

Platinum Member
I know quite a bit of people around here have had bad sticks of ram. I myself have had many. Especially in my earlier noob days of ocing and such. Why isnt there a program for windows based operating systems to efficiently skip bad ram addresses?

I mean for sticks of ram that have ~40 or less bad addresses (memtest). disregarding the 700+ crapped ram. I just see it as I have a stick of 512mb ram and only like maybe 25 or so megs of it are crapped meaning I spent ~$100 on something that is now useless.

I know linux and macs can actually skip the bad ram and not use it ironically with a program actually called BadRam. I have brought this up in another forum only to hear that windows "kind of" does this automatically. Realistically I know that this is not true in all cases. The BSOD from ram can cause havoc to your system files.

So am i uninformed or correct in this situation?

RTM
 
I don't know if you are uniinformed. I haven't heard of "BadRam" before now. I do recall that Windows for Workgroups 3.11 was accused of excessive parity checking.

Hmm! I couldn't get excited about trying to salvage part of a bad dimm. It conjures up the possibility of dumpster diving and labeling 512MB Dimms as 256 Dimms. If ram was inordinately more expensive, then maybe.

Just RMA the stuff and get your money's worth.
 
well the ram in question is out of warranty and im not a RMA theif. that is true though. There are enough sleazy sellers on the good ol internet.

I guess i will just stick them in my linux mail server. not like it needs it.

RTM
 
If you put them in the Linux box be sure you've applied the badram patch because it's not in the standard kernel and I believe you have to tell it what addresses to avoid.
 
BadRam works by instructing the kernel to look for a list and/or range of bad addresses from the bootloader which you found from running memtest86 (I think that recent versions of memtest86 will create this parameter for you). As long as the monolithic portion of the kernel can fit into the beginning of memory, and that memory range is all good (we're talking about less than 2MiB), then the kernel will not attempt to allocate the addresses specified at boot-time.

Unless OS X and XP are testing the RAM in a similar way as memtest86, they cannot know what addresses to exclude. Therefore I doubt that they handle bad memory as rigorously as a BadRam-patched kernel does.
 
yeh the badram patch, as most linux patches and progs were painless to find... works great too... and i did check up on one stick i got from newegg eons ago and they approved my rma...

my luck is changing
 
Originally posted by: NewBlackDak
What kind of crappy ram doesn't have lifetime warranty?

Originally posted by: RelaxTheMind
yeh the badram patch, as most linux patches and progs were painless to find... works great too... and i did check up on one stick i got from newegg eons ago and they approved my rma...

my luck is changing

 
Originally posted by: TRUMPHENT
I don't know if you are uniinformed. I haven't heard of "BadRam" before now. I do recall that Windows for Workgroups 3.11 was accused of excessive parity checking.

Hmm! I couldn't get excited about trying to salvage part of a bad dimm. It conjures up the possibility of dumpster diving and labeling 512MB Dimms as 256 Dimms. If ram was inordinately more expensive, then maybe.

Just RMA the stuff and get your money's worth.

second that... i agree that for various testing purposes it would be good to have a utility like this under windows, however...
 
Odds are if some of it is bad, the rest won't follow too far behind. Not to mention you'll have circuit degradation and possible overheating on the ram as well if it's physically damaged. Just toss it or RMA it.
 
I know you mean well and are attempting to make use of hardware that is sitting around.

But my advice is: Run away scared from RAM that exhibits faults. Save yourself future headaches and invest in some new quality RAM.

Bad RAM is turning out to be the cause for a very significant portion of unexplained computer crashes industry-wide. DRAM that exhibits faulty behavior is a sign of a manufacturing defect that is difficult to limit to a range of addresses.

MemTest86 can show you that specific capacitors or selectors fail reliably, but it cannot prove to you that others work reliably. Memory needs to be better than 99.999% reliable. Unless you run MemTest86 for a year, you can't test your RAM this much.

In the end, you can try to play the probability game. But is it really worth the hassle to save yourself $50 on an old 256-meg DRAM stick?

 
Originally posted by: kylef
I know you mean well and are attempting to make use of hardware that is sitting around.
But my advice is: Run away scared from RAM that exhibits faults. Save yourself future headaches and invest in some new quality RAM.
Bad RAM is turning out to be the cause for a very significant portion of unexplained computer crashes industry-wide. DRAM that exhibits faulty behavior is a sign of a manufacturing defect that is difficult to limit to a range of addresses.
And for the years intevening, between when they stopped shipping parity/ECC by default for/with systems, and when they started the mfg's FUD about "today's RAM is much higher quality - there is no more issue with bad/faulty memory anymore", using that as an excuse for cost-cutting and not designing the rest of systems to properly support ECC... and now they discover that "bad RAM" is a significant cause of problems? Whoa! Color me surprised... not. In fact my current system is the first in which I've ever not run with ECC or at least parity.

That said, most often I've found that when DRAM starts to get flaky, all of the addresses lie within a certain range, either the chip, or a bank, or a row of the cell, etc. So mapping out that entire grouping, is generally no more and no less reliable than RAM generally is.

You're right that it should be replaced, eventually, but... isn't it interesting how with persistant storage technology, a lot of work has going into error-detection and transparent-remapping schemes, that even in the event of defects, the host is still presented with a defect-free view of the storage device, and the device doesn't need to be replaced entirely? I'm speaking primarily of the bad-sector remapping that modern IDE drives do, and similarly most decent USB key flash drives do as well. And yet, there is no provision for doing the same thing with volatile storage devices like DRAM? Why not? The discrepency, is, quite frankly, bizarre. Almost on the order of a conspiracy. (The 'DRAM cartel' is always up to something, let me tell you... 😛)
Originally posted by: kylef
In the end, you can try to play the probability game. But is it really worth the hassle to save yourself $50 on an old 256-meg DRAM stick?
Well, DRAM didn't used to be as cheap as it is these days, and why should someone toss, say, a 1GB DDR stick, if 99% of it is good and it could be use sucessfully in a non-primary system? Or even more likely, in laptop or some situation in which the parts aren't easily drop-in replaceable commodities? (In some cases, there is a base amount of DRAM soldered directly to the laptops mobo. In other cases the DRAM expansion cards are proprietary and expensive.)

There's really no excuse for the Windows' OS world to not support bad-DRAM remapping/map-out features, especially since NT-based OSes run in virtual-memory mode anyways. So what if there could end up being one or two holes in the "non-paged pool" allocation region, most drivers can cope. Apps should only see virtual addresses anyways, so to them it wouldn't ever matter. One more feature that MS needs to play a bit of catch-up on. 🙂
 
Originally posted by: VirtualLarry
Apps should only see virtual addresses anyways, so to them it wouldn't ever matter. One more feature that MS needs to play a bit of catch-up on. 🙂
We'll work on that as soon as we get this componentization thing figured out in Longhorn. 😛

 
Originally posted by: VirtualLarry
Well, DRAM didn't used to be as cheap as it is these days, and why should someone toss, say, a 1GB DDR stick, if 99% of it is good and it could be use sucessfully in a non-primary system? Or even more likely, in laptop or some situation in which the parts aren't easily drop-in replaceable commodities? (In some cases, there is a base amount of DRAM soldered directly to the laptops mobo. In other cases the DRAM expansion cards are proprietary and expensive.)

Yes... The ram i speak of one of them i paid $125 for a 128mb stick... which is close to $1/1mb... the ddr i have of course of your $80 newegg 256mb ddr special like 3 years back...

My next system will most likely consist of ECC Ram. Im kind of getting over the whole super overclocking scene anyways.
 
Originally posted by: RelaxTheMind
Originally posted by: VirtualLarry
Well, DRAM didn't used to be as cheap as it is these days, and why should someone toss, say, a 1GB DDR stick, if 99% of it is good and it could be use sucessfully in a non-primary system? Or even more likely, in laptop or some situation in which the parts aren't easily drop-in replaceable commodities? (In some cases, there is a base amount of DRAM soldered directly to the laptops mobo. In other cases the DRAM expansion cards are proprietary and expensive.)

Yes... The ram i speak of one of them i paid $125 for a 128mb stick... which is close to $1/1mb... the ddr i have of course of your $80 newegg 256mb ddr special like 3 years back...

My next system will most likely consist of ECC Ram. Im kind of getting over the whole super overclocking scene anyways.



I am in the same boat. Used to overclock, now I don't give a crap about it. Computer is fast enough.

I have bad stick of 512meg ram that I am using in my Linux desktop. Had it for a long time, don't remember were I bought it from. Don't remember the manufacturer.

Next time I buy RAM it's going to be ECC. Hopefully that will catch anything before it crashes my computer or something.


I have Badram patch applied and have the memory mapped out. It's just a tiny section of ram.

What it does is that it simply maps the bad section of RAM to kernel protected space, so that none of the normal applications can use it. That's it. So since it uses the normal kernel memory managment stuff there is no worry about the VM moving it around or anything and there are no dirty hacks or whatnot.

It only works, though, if your kernel does occupy enough RAM to reach the Bad section of RAM, if it does then the computer probably won't boot without a kernel panic anyways. But since the kernel is static size you don't have to worry about it moving to the bad ram spot. Any modules you load after booting will be placed around the badram section if need be. Usually what people do is switch the dram sticks around so that the bad section of ram gets moved to a different section of the computer's memory map.

I have 1GB of RAM in my system. That's a awfull lot to go wrong, and I think it would be a waste to throw away a otherwise perfectly good stick of fast RAM. I wouldn't use it in a production server, but it's fine on my desktop. It would also probable be usefull if you have a older server or some weird setup were your going to have a hard time finding replacement ram for, or it would be very expensive. Like if you have something that uses rambus ram or whatnot.

It's something stupid simple if your familar with compiling kernels and it works. Memtest86 makes it easy to use Badram because it will even spit out memory mappings that you can copy directly to kernel boot time parameters.

If it was under warrrentee I would return it in a second though.

As for why Windows doesn't have it?

Why would Microsoft want to put something like that in there?! They aren't responsable for your crappy hardware and it would cause a support nightmare. If you have a bad stick of RAM and even if the bad spot is in a small section the rest of the stick is very questionable and probably flaky. If Microsoft supported this feature it would be like them accepting the fact that they figure their OS would work fine even with flaky RAM.. They need that like they need a hole in their head.

This BadRAM is just a stupid hack that works. It adds like a total of 20 lines to the kernel code and is just something you use when you can't get the RAM replaced for whatever reason and you don't want to throw it away.

There is a related patch called Badmem that is much more capable then Badram, but badram is simplier to use and that's why I use it.
 
Nice read drag. I understand your point of view of why microsoft not having it becuase i have an ok understanding of microsoft. Im just saying in the more ideal "prefetching and error correcting" environment would indeed, in my eyes make windows a more viable option for people who crave stability instead of say... linux... hmm dont you hear that name about 10 times more than you did a year ago?

In fact I wasnt exactly questioning why microsoft did or did not support it. I was questioning why I havent heard more about it in the general techie community such this forum. Most every other

Which in turn brings us back to the point. "A stupid hack" that in turn saves a lot of headaches and lost money from mishandling or a bad purchase w/ the dreaded 15-minute warranties.

The thing that is stupid is if the technology is "stupid simple" shouldnt it be stupid simple to implement? I see it as more preventive maintenance than the rest of the ram going "flaky" (maybe from the constant BSODs/crashes?) Its pointless having the technology and not using it. In turn for it to come out 5 years later like it was the missing link and people pay 20 times what the technology is worth.


hmm...lets not put seatbelts in cars because of crappy hardware, accidents, or even mistakes... a FRIGGIN NYLON STRAP!!!!

comments?
 
By the way, almost all of the options you can pass to the Windows kernel are pretty well documented here:
http://www.sysinternals.com/ntw2k/info/bootini.shtml

The closest thing Windows supports to this today is the "BurnMem" option, which really is more of a way to artificially limit how much physical RAM Windows is allowed to use.

Originally posted by: RelaxTheMind
The thing that is stupid is if the technology is "stupid simple" shouldnt it be stupid simple to implement?
If you only knew how much work it takes to implement something like this and make sure you don't break any 3rd party app, you would shudder and swear off computers for good. 🙂

I see it as more preventive maintenance than the rest of the ram going "flaky" (maybe from the constant BSODs/crashes?)
Well, Windows *does* already have that memory checking utility. The guess you could imagine a scenario like the following:

- on a system crash (say, a BSOD), offer the user an option to check their RAM with Windows Memory Diagnostic
- if any bad segments are found, write out the bad segments of RAM to the floppy containing WMD (or a USB key if using a CD-ROM)
- pop a wizard after boot asking the user to insert the floppy/usb key into the computer for inspection of results

Then the wizard could warn the user with a message like:
"Windows has detected a problem with your computer's physical memory. Windows can attempt to disable the malfunctioning memory, but you are strongly advised to contact your computer repair representative to have the memory replaced."

That's the only way I could see something like this ever working on Windows...

(The trick is you have to make this brainless for people who don't understand the difference between RAM and Hard Disk space, much less editing boot.ini...)
 
Originally posted by: drag
As for why Windows doesn't have it?

Why would Microsoft want to put something like that in there?! They aren't responsable for your crappy hardware and it would cause a support nightmare. If you have a bad stick of RAM and even if the bad spot is in a small section the rest of the stick is very questionable and probably flaky. If Microsoft supported this feature it would be like them accepting the fact that they figure their OS would work fine even with flaky RAM.. They need that like they need a hole in their head.
Well, I thought it was generally referred to as "fault-tolerance", and you're right, NT-based OSes don't have very much of it built-in in terms of hardware. NT is "robust", but also "brittle", because it demands that the hardware underneath it work pretty-much 100%, or it just dies. (As an aside, I once say an interesting read, discussing how guarantees of the level of availability and whatnot, can actually tend towards more catastrophic failures, instead of more flexible systems, that can "fail gracefully" when something happens, and still function, although not optimally. I would place NT squarely in the former camp, and Win9x in the latter.)

It is interestingly similar, to that version of DOS, that didn't do a full surface-scan/read-verify during a disk format, it simply created the partition and assumed that the disk sectors were good, no more need to scan the surface like with old MFM/RLL disks. Unfortunately, creating a compressed-disk volume (DriveSpace, etc), on a lower-level filesystem volume that contained bad sectors, was just asking for trouble, and MS eventually realized the error of their ways and went back to a mandatory surface-scan during a full-format.
Originally posted by: drag
This BadRAM is just a stupid hack that works. It adds like a total of 20 lines to the kernel code and is just something you use when you can't get the RAM replaced for whatever reason and you don't want to throw it away.
There is a related patch called Badmem that is much more capable then Badram, but badram is simplier to use and that's why I use it.
Back in the DOS/Win3.1/Win9x days, one could use EMM386 excludes and whatnot to map out memory ranges not to be touched; it's too bad that NT doesn't seem to offer the same level of functionality. It is useful in cases like this one.

I guess what I'm trying to say is - how would you feel about it, if Windows' would refuse to boot/operate, if your HD developed a single bad sector? I mean, why should Windows' be forced to deal with "your crappy hardware" - IDE HDs are cheap these days, just throw out your 250GB (minus one bad sector), and buy a new one for $100, right?

Somehow, I just don't find that to be very conducive to the real-world needs and issues of consumers.
 
Back
Top