LP on .NET

April 8, 2010

Deferred Procedure Calls and CPU Usage

Filed under: Software,Windows — Larry Parker @ 11:13 pm

I recently started using an old Dell Dimension desktop (circa 2005) on a regular basis and for the past couple of months have noticed that the CPU would periodically increase to around 20% for no apparent reason.  This had been causing mouse slowdowns (giving it a rubber band effect as it moved across the screen) as well as audio pops and clicks as I listened to music.

At first I thought it was some service performing housekeeping and I just dealt with it.  The “CPU storm” would typically last for ten minutes or so and then calm back down.

But this week I just couldn’t take it anymore and decided to get to the bottom of it.  After some Google searches and various troubleshooting (see below) I encountered a common recommendation:  update the video drivers.

It turns out that my old NVIDIA geForce 6800 was running a very old driver, and updating it to the latest version fixed the problem!!  Beautiful!  🙂

Technical Details

What I found strange while troubleshooting was that Task Manager showed the CPU at 20% but did not indicate any process taking up much CPU time on the Processes tab.

After digging around a bit more, I came across something called deferred procedure calls.  According to Wikipedia’s entry on this, a deferred procedure call is a Windows operating system mechanism that allows high-priority tasks to defer lower-priority tasks for execution at a later time.

By a stroke of luck, I recently installed Microsoft’s Process Explorer utility to find out which process had grabbed hold of a particular file, and just happened to see an entry for DPC’s:


When the CPU storm was in progress, I indeed confirmed that the DPC’s were taking up a fair amount of CPU time, and this coincided with the slow mouse and audio pops.

Since updating my video drivers, I have not seen the DPC’s jump up very high for more than a second or two.  And my mouse and audio have been behaving great.

The storm has subsided and it’s been smooth sailing ever since!!

Hope this helps.


Create a free website or blog at WordPress.com.