How to detect RAM problems to stabilize Vista

How to detect RAM problems to stabilize Vista

Summary: I had a rough weekend testing Vista RTM on multiple hardware configurations because of some minor hardware issues that never surfaced previously.  It appears that Vista is extremely sensitive to any kind of memory error possibly because of ASLR (Address Space Layout Randomization).

SHARE:
TOPICS: Windows
86

I had a rough weekend testing Vista RTM on multiple hardware configurations because of some minor hardware issues that never surfaced previously.  It appears that Vista is extremely sensitive to any kind of memory error possibly because of ASLR (Address Space Layout Randomization).  It turned out that I had a faulty address block near the end of my second 512 MB DDR2-533 DIMM.  I never had any stability issues with Windows XP but I'm guessing that there was almost no chance of Windows being loaded in that portion of RAM.  Vista on the other hand randomizes the address layout to mitigate any security breaches if a hacker finds any weaknesses in software but that also means it's quite possible for a critical piece of Windows Vista to use the faulty memory block and lock up the entire operating system.

I recalled that colleague and friend Justin James was having similar problems with his brand new computer with Vista RTM MSDN edition and finding out that he had a bad stick of memory.  In a similar fashion, Justin had no problems running Windows XP with the bad DIMM but once Justin got a replacement DIMM from Crucial, all his Vista lockup problems went away.  I wondered if I had a similar problem so I decided to run some tests which proved my suspicions correct.  It turned out I did have a bad piece of memory so I'm now trying to get an RMA from Kingston for a replacement.  For the time being I'm running on 512 MBs of RAM for Vista testing with the bad memory sitting on my desk.  Unfortunately, the system still locked up on this particular machine which has been my main Windows XP machine for a year without incident and I'm almost ready to give up running Vista on this machine until I can figure out what's wrong with it.  Vista has been running fine on my other machine.

But there is a valuable lesson to be learned here which is to TEST YOUR MEMORY and don't assume it's ok because you're not having any problems with it in Windows XP.  Here are some valuable instructions for you to test your own memory using Vista and Memtest86.  Even if you're not running Vista, it doesn't hurt to run Memtest86 to check your RAM integrity.  Follow the links and instructions below to test your own memory.

Memtest86 free third party tool

ISO Recorder for burning ISO images to CD

Memory Diagnostics Tool for Vista

  • Hit the start button (control-ESC) and type "memory".  The new Vista start button will automatically present and highlight "Memory Diagnostics Tool" so you just need to hit ENTER.
  • It will prompt you to reboot now or run the memory test later.
  • On the next reboot, the test will automatically run in normal mode twice.
  • You can use F1 to customize the testing options.
  • Select "Extended" memory test.
  • Tab twice to jump to the repeat settings.  You can set the number of tests to 0 to have it run indefinitely until you hit the ESC key.
  • Hit the ESC a few times to break out of the testing cycle and boot Vista.
  • Find the error report at C:-Windows-System32-LogFiles-MemDiag (replace - with backslash since wordpress refuses to show the backslash character) 

 

Topic: Windows

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

86 comments
Log in or register to join the discussion
  • Prefer Memtest86+

    It seems to be more up to date.

    http://memtest.org

    Nothing wrong with running both.

    I am surprised that you don't run memory tests more often. Anytime I have any problems that are not obvious what the problem is I run memory tests.

    1. It is easy
    2. It is fast

    Memory tests have saved me several times in the past. I have used Memtest86 and Memtest86+ for nearly 8 years now.

    Keep these programs in you IT tool kit! They even run off of a floppy.
    dragosani
    • Link broken

      The link doesn't work
      georgeou
    • I updated blog, thanks

      I updated blog (with credit to you), thanks!
      georgeou
      • I wanted to add.

        Thank you for giving me credit.

        Microsoft actually has a memory diagnostic too. I haven't used it since beta. In beta testing it appeared to be a knock off of the Memtest series. Could be worth a try though.

        http://oca.microsoft.com/en/windiag.asp

        One word of warning as well. Memtest86 and Memtest86+ are very good. However, they cannot detect all errors. If you are still having weird crashes replace all of your RAM with brand new modules. However, after nearly 8 years of using Memtest86 this has never solved a problem for me unless Memtest86 detected memory problems.

        I have also swapped out motherboards on computers that seemed to have memory problems but the RAM worked fine in other motherboards. [b]Always run the Memtest86 again after installing new RAM.[/b] Faulty data paths? I wonder if some capacitor has leaked or other electrical anomaly has occurred on the motherboard. Try replacing the motherboard if new memory modules still give errors.

        Check your motherboards bios. I have actually had 1 case were for some reason the memory voltage got changed. I would have blamed the user but they had no idea how to get into the bios much less any reason to change the setting. We do have odd power outages were I work.

        You only need 1 pass of the RAM test. I have never had any memory errors show up on multiple passes unless it showed up on the very first pass. However, if you have the time multiple passes do not hurt anything.
        dragosani
        • Pass count

          [i]You only need 1 pass of the RAM test. I have never had any memory errors show up on multiple passes unless it showed up on the very first pass. However, if you have the time multiple passes do not hurt anything.[/i]

          Multiple passes have a chance of catching iffy timing issues that one pass won't -- but only if you do environmental stress at the same time. It doesn't hurt to have something that (unlike the memtest86 family) hammers the supplies and generates a lot of noise from peripherals.

          Maybe in version 13.0 -- but I'm not holding my breath.
          anonymous
        • Thanks, I intend to swap both DIMMS to test

          I'll also try to Microsoft tester.
          georgeou
  • Among others

    George, memtest86 (+) is one of the (many) reasons why a Knoppix [1] disk is an indispensable part of the kit for anyone who doesn't buy all of their computers prebuilt from Dell.

    Other goodies include [b]usbview[/b], [b]lspci[/b], [b]mii-tool[/b], and a boatload of other hardware diagnostics. Even if you have no intention of ever running a Linux desktop, the geek toolchest is worth having around.

    [1] Or other liveCD distro; it seems like most (e.g. Gentoo) are lately
    anonymous
    • Thanks

      Will try them
      georgeou
    • Not to get off subject, but

      if one ever DOES intend on ever running a Linux desktop, or is even contemplating about it, I'd suggest using the Ubuntu or Kubuntu LiveCD, because the LiveCD installs the exact same software and configurations on your hard drive if you choose to install it (and it's really easy to install). Whereas Knoppix is intended as a LiveCD-only distro, and Gentoo, well, you need to be really committed to the Linux platform to want to take that road (although if you are committed to the Linux platform or simply want to learn how operating systems in general work I highly recommend it).
      Michael Kelly
      • LiveCDs

        [i]if one ever DOES intend on ever running a Linux desktop, or is even contemplating about it, I'd suggest using the Ubuntu or Kubuntu LiveCD, because the LiveCD installs the exact same software and configurations on your hard drive if you choose to install it (and it's really easy to install).[/i]

        I'm assuming that the purpose really [b]is[/b] to run a strictly LiveCD precisely because the subject was Microsoft systems repair/diagnosis. If they are impressed, well and good. Mostly, though, it's just tools.

        In that case, there's really no reason to prefer one LiveCD distro over any of the others except maybe hardware detection.
        anonymous
  • Doesn't sound right

    Are you sure George it's a RAM issue?
    Why wouldn't XP use that 512MB DIMM?
    Just trying to follow along here.
    D T Schmitz
    • XP only needs 128 MBs of RAM

      XP only needs 128 MBs of RAM and I've even run XP on 64 MBs with MS Office loaded. XP does not randomize the memory layout so chances are it stays in the beginning portion of RAM and the OS never goes past 128 let alone 512 MBs.

      Vista randomizes the OS address layout to make it difficult on hackers.
      georgeou
      • So

        Would it be correct to say even if you throw more memory at it, XP doesn't use it?

        Thanks George.
        D T Schmitz
        • XP doesn't, but applications do

          Java for example wastes whatever is left over like a drunken sailor. There is a web-based office written in Java that takes 100 MB per applet just to load and a lot more for bloated XML data.
          georgeou
          • That is what happens when you code in Java

            Yes, let Java manage your memory so it can devour what ever the machine has. Microsoft Office can devour system resources, but Memory doesn't seem to be one of them. Internet Explorer 6 was though.
            nucrash
          • Myth....

            Still perpetuating it? Obviously you haven't run Java in years.
            Techboy_z
          • I've run it recently and I still can't get over JRE HELL

            I had the misfortune of deploying Oracle 11i over the years. There seems to be an endless number of JRE versions that conflict with each other and an endless number of application dependencies that rely on a specific version. You could at least bypass DLL hell by statically linking to local copies of the DLL, I only wish JRE hell were so easy to fix.

            We haven't even begun going in to the bloat problem.
            georgeou
          • Haven't Coded in Java for a While

            It is much better than it was. But there are still some issues. Primarily what I have a problem with right now is all of those legacy applications written for Microsoft's JVM that won't go away.

            Java does have advantages, but I still prefer C++
            nucrash
      • Hibernation

        I would suspect any XP box with the bad memory would fail to reload from Hibernation. The checksum would be incorrect.

        Hibernation checksum's all physical memory (not just what is used) for security reasons, if there is a bad memory stick I would suspect there would be random changes to that memory that would fail the checksum.
        LinuxHippie
  • George, great artticle... but one problem I forsee

    is the average user factor again. Granted you have provided an easy to follow and implement solution, BUT we are talking about Mom and Dad again. This kind of issue can be a real Achilles heal for adoption of Vista.

    Is Microsoft working on a built in real time run solution? Otherwise, this will infect any credibility of Vista being a good OS.

    (Yes I know I am a Pro Linux guy, but even I see the potential damage a bug like this could cause.)

    One other remotely possible aspect of this is the malignant software writers could craft a malicious payload find a corrupt area of RAM then to force Vista into using the random memory allocation and cause a lock up or even trap code in the bad sector and take over from there. ]:)
    Linux User 147560