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:
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!
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: