CPU Enhanced Halt, DPCs and Audio Stuttering

For a while, my desktop computer has been having issues with audio stuttering and I’ve undertaken things such as downgrading VLC (which helped a bit) and also updating the audio and network drivers on my desktop computer (which also helped a bit but didn’t completely eliminate the issue).

I found that network activity tended to cause audio stutter and choppiness when browsing webpages at the same time as playing audio or video but other general things like opening Task Manager and other applications which didn’t rely upon network connectivity. This led me to do some further research on this issue.

It turns out that this problem occurs as a result of latency in one or more areas that affect real time processes such as audio and video, including:

  • CPU stalling,
  • Deferred Procedural Calls (DPC).

To see if your computer is being affected, you can use a utility such as LatencyMon or DPC Latency Checker. Sample images of a DPC inhibited computer are below:

LatencyMon - DPC inhibited system

LatencyMon - DPC inhibited system

DPC Latency Checker - DPC inhibited system

DPC Latency Checker - DPC inhibited system

So, how did I fix the problem?

My desktop uses a Gigabyte GA-EX58-EXTREME motherboard so I suspect other Gigabyte boards may be able to have similar stuttering issues with the onboard audio corrected in a similar manner. All I had to do was disable “CPU Enhanced Halt” otherwise known as “C1E” in the BIOS. It may be in different screens depending upon which motherboard is inside your computer and the BIOS revision but I found it under:

  • M.I.T Intelligent Tweaker >> Advanced Frequency Settings >> Advanced CPU Core Settings >> CPU Enhanced Halt (C1E)  (Set this option to disabled).

Exit the BIOS and save the settings and then try out your audio and video and hopefully that should the problem with audio stutter when using the onboard sound. Disabling “CPU Enhanced Halt” simply prevents the motherboard from reducing the voltage supplied to the CPU when it is not being heavily utilised. This is a power saving feature which can make marginal savings on overall power utilisation. I also raised the CPU voltage to 1.2V to keep things stable.

If you still notice stutter you may also wish to disable “Enhanced Intel Speedstep” (EIST) in the BIOS as well. This feature reduces the CPU speed by decreasing the Front Side Bus (FSB) speed and the clock multiplier which results in lower performance from the CPU when idle but increases these parameters when load is introduced to the system. Slight delays can be introduced as a result of using this feature in conjunction with “CPU Enhanced Halt” (C1E) as the system cranks up the performance to suit manifesting in audio and video stutter when using onboard solutions.

At any rate, this is how LatencyMon should look when things are back to normal:

LatencyMon - DPC uninhibited system

LatencyMon - DPC uninhibited system

… and this is how DPC Latency Checker should look when things are back to normal:

DPC Latency Checker - DPC uninhibited system

DPC Latency Checker - DPC uninhibited system

You may still see the occasional spike but they should be exceedingly rare and mostly undetectable from henceforth.

1 ping

  1. […] by Boyd Chan Update: If this doesn’t work for you then read this post. […]

Leave a Reply

Your email address will not be published.