Tuning Windows XP: PIO and DMA
November 29, 2006
The boot is fast enough, but the load (the time after I enter my Windows login to the time I can actually use my machine) had become excruciatingly slow.Â Furthermore, certain operations seemed to take an inordinate amount of time, while other things seemed pretty snappy.
I did the spyware cleaning, HDD defragging, registry cleaning, chores.Â I even uninstalled all the things that I didn't use and ripped out as many non- essential services and startup apps as I could.Â It was still crawling.
At this point, I had begun to seriously suspect one or both of my disks had serious issues.Â It seems like IO was my bottleneck, since my memory wasn't being maxed, my CPUs would spike but not that much and most of it was in the System Idle Process (how could something called "Idle Process" be anything other than "Idle"...Â oxymoron anyone?).Â Furthermore, you could really hear the HDD cranking along as these slow moments.
I was about to plunk down some money and replace my HDD one by one, when I saw this post this morning on a last ditch attempt to learn why my machine had taken a turn for the worst.Â I was led to this post after using Sysinternals Process Explorer and noticed a high percentage of the CPU utilization of the "System Idle Process" was actually used by a process called "Interrupts".Â I went searching for a meaning to this process and found the post.
The curious thing is that while this problem outlined in the forum post indicates it is a problem pre-SP2, it had happened to me post-SP2 (I even had a version of the atapi.sys driver that is post-hotfix).Â Nonetheless, the fix worked.Â I uninstalled the IDE Channel driver that was set to PIO, rebooted, let XP detect and install the IDE channel again, rebooted, and it was now set back to DMA and running as smooth and fast as ever.Â Hopefully, it won't continue to flop back to PIO -- I guess that could indicate a hardware problem with my drives.Â We'll see.Â For now, I'm rocking.