SSD Freezing Fix

A while back I picked up an SSD to speed up my laptop. It worked great – I got a nice improvement in speed, especially when running virtual machines, which I use regularly. I’d really recommend it as an upgrade.

Although it worked great 99% of the time, I ran into an issue where the system would completely freeze for about 1 minute (with the hard drive access light on) and then would return to normal. This would happen every 3 or 4 days. I had heard of freezing issues with SSD’s before purchasing mine, but I assumed this was a thing of the past. Apparently not.

It took a lot of searching (which is why I am reposting it here), but I eventually found a fix:

http://forum.crucial.com/t5/Solid-State-Drives-SSD/Solution-C300-Disk-Freeze-ups-in-Windows-7-solved-for-me/td-p/38766

Essentially the issue is an incompatibility with the LPM (Link Power Management) feature of Intel SATA controllers. LPM is a power saving feature. Considering the prevalence of Intel SATA controllers, I’m really surprised that Crucial didn’t catch this before they shipped their drives, or at least didn’t have a firmware fix available shortly after shipping.

To fix the issue, LPM needs to be disabled. It can be disabled with a registry change:

  • Open up notepad and copy the following into it:
 Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port0]
 "LPM"=dword:00000000
 "LPMDSTATE"=dword:00000000
 "DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port1]
 "LPM"=dword:00000000
 "LPMDSTATE"=dword:00000000
 "DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port2]
 "LPM"=dword:00000000
 "LPMDSTATE"=dword:00000000
 "DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port3]
 "LPM"=dword:00000000
 "LPMDSTATE"=dword:00000000
 "DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port4]
 "LPM"=dword:00000000
 "LPMDSTATE"=dword:00000000
 "DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port5]
 "LPM"=dword:00000000
 "LPMDSTATE"=dword:00000000
 "DIPM"=dword:00000000
 
  • Save the file as “fixssd.reg”.
  • Double click the saved file.
  • You will get a User Account Control prompt asking if you want “Registry Editor” to make changes to your computer. Click “Yes”.
  • You will get a Registry Editor prompt confirming you want to make changes. Click “Yes”.
  • You will get a success message. Click “OK”.
  • Reboot your machine.

SSD freezes should now be a thing of the past!

Notes

I have a Crucial M4 512 MB drive (M4-CT512M4SSD2) running on a Lenovo T500 ThinkPad. It’s running the 000F firmware. This issue could potentially be fixed with a newer firmware that wasn’t available when I solved my problem. At the time of writing, firmware revisions 010G and 040H are available. Firmware 010G includes the following fixes, which sound promising:

  • Improved resume-time from low power modes, and improved reliability of warm reboot
  • Improved power consumption by disabling HIPM (Host Initiated Power Management)

Although I am running a Crucial SSD, I expect the issue has to do more with the controller than the manufacturer of the drive itself. The Crucial M4 drives use a Marvell controller. The following companies (and probably a few others) also produce drives using Marvell controllers, so this fix could potentially apply to them as well:

  • Corsair
  • Plextor
  • OCZ

One Response to “SSD Freezing Fix”

Leave a Response

Current day month ye@r *

Trackbacks

  1. […] one last desperate search later, I came across this thread and in the same search this page suggesting two methods I hadn’t tried. I did not try disabling LPM (some sort of power saving […]