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?

  • 2
    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.

  • 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
  • I'm using 1536 MB at the moment, but my system uses quite a bit of the page file and gives virtual memory is low" notifications. The module used to be in the lowest slot, I believe, which I understand meant it was last to be filled up. @BenVoigt Yes, I suspected it might need to be DLL-ed or something like that.
    – Mark C
    Jul 23 '12 at 19:31
  • 1
    @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.

  • 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
  • 2
    @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 clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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