Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

System instability, such certain programs crashing under load, led me to test my memory modules. The bad blocks on the problem stick lie in the range 001CB18000 to 001CB19000.

The memory stick has a 512MB capacity, I am running on three at the moment. The bad stick is being prepared for an RMA request.

Operating System: Windows XP (32-bit)

Once before, Google showed a similar topic but I cannot reproduce the search, and I do not believe anyone offered a solution to it.

Is it feasible to write a program that could allocate the blocks I want?

share|improve this question
As memory management is mostly up to your OS it would make sense to tell it. – Baarn Jul 23 '12 at 18:49

If you're running linux, the badram or badmem kernel patches may help.

a patch to make (partly) buggy memory modules work in a (vanilla)-Linux kernel

On Windows, your best bet would be to pray that none of the holes are hit during the early boot process and then load a boot-time system driver that claims the holes as if they were memory-mapped registers in peripheral hardware.

Or you can use the badram patch for xen, and load any OS of your choice into a virtual machine.

share|improve this answer
Ah yes, I need to add a little more information. I'm sure it is not so hard to do in Linux. – Mark C Jul 23 '12 at 19:00
Yes, since the holes are 459MB from the bottom of the stick, and I can put it in the lowest slot, it only gets touched by things like the browser or other programs that use a large amount of memory. – Mark C Jul 23 '12 at 19:11
@MarkC - Can you simply live with 1024MB of memory by chance? How I see it, no matter where you put it, some application will use it. Either the operating system, or a program that uses lots of memory, as I said you won't be able to control that aspect. – Ramhound Jul 23 '12 at 19:23
+1 damn, that's a clever idea – Bigbio2002 Jul 23 '12 at 19:28
@MarkC - Memory doesn't work like that, memory isn't filled/used "in order", I don't know of a way to tell Windows NOT to use an address ( at least without being Microsoft ). Why don't you just replace the memory module with larger amounts ( i.e. 1024MB instead of 512MB ). You would end up with ~3.4GB of memory. – Ramhound Jul 23 '12 at 19:37

Apart from buying RAM being the best choice - if you can - you might also try to solder a working module out of spare ones. This would be a bit trial-and-error though. Also a lot of work. Maybe not as much as writing a driver for Windows (if this works since you cannot claim memory that has already been claimed) that claims the bad blocks :) but a few hours as well.

Also, you might consider using Linux (like in Ben Vogt's solution) and booting Windows in a VM. Fast solution, a bit less performance.

share|improve this answer
If he actually trys to address the bad blocks of memory he is likely going to still crash is system. The best solution is to replace the bad memory stick. Even if he does address the bad memory blocks, he will have less memory, and there is no guarantee other blocks won't go bad. – Ramhound Jul 23 '12 at 19:38
@Ramhound: No, addressing the bad blocks won't crash the system (if and only if you have parity/ECC, you may get a system check exception, which still is not an outright crash, although some OSes may halt if they see that). Haven't you heard of stress-test software, such as SuperPi, giving a wrong result without crashing? that's because there was a memory error in data memory (not code or metadata). Most RAM bitflips will crash the process, and those in kernel data structure frequently crash the whole system, but that's because of using the bad value, not from the read. – Ben Voigt Jul 23 '12 at 21:50

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.