How to fix the audio crackles and stutters in a Dell XPS M1530

My Solution for Dell XPS M1530 DPC Latency

DPC latency is an extremely well documented problem in the Dell XPS line of laptops. The problem is characterized by occasional CPU spikes that cause a brief stutter or crackle in the audio stream. In my case, it only occurred every 30 seconds or so, and only for an instant. But I use the laptop for making music, and the noise is just enough to make any sort of real-time performance impossible.

Here are the specs of the system:

  1. Intel Core 2 Duo T7500
  2. Behringer UCA222 USB Audio
  3. Broadcom 1395 WiFi
  4. NVIDIA 8400M GS 128MB Video
  5. Windows 7 Enterprise

The posts I link to above have several solutions that have worked with varying degrees of success for different people, but nothing seemed to quite work for me. After spending most of a Saturday tinkering with this, I was able to find a solution.  Here's what I did:

Download DPC Latency Checker. This little utility shows a scrolling bar graph that indicates the DPC (Deferred Procedure Call) performance of your computer. The glitches in the audio stream are very clearly indicated by the big red sky scrapers. This is what mine looked like:

Bad latency spikes on my Dell XPS M1530

The Broadcom 1395 WIFI adapter seems to be a recurring theme when it comes to DPC problems with this laptop, and unfortunately that's the one I have installed. The first thing I did was download and install this hacked driver for the Broadcom adapter.

You need to choose 'Browse my computer for driver software' and then choose 'Let me pick from a list of device drivers on my computer' to get to the 'Have Disk'  button that allows you to manually install the drivers. Searching for the driver or allowing Windows to pick the best driver for your hardware won't work.

After updating the driver, the audio glitches seemed to occur a little less frequently, but they were still there. Time to break out the analysis tools and find out what was actually going on:

Download and  install the Windows Performance Toolkit. I have Windows 7, and this is part of the Windows 7 SDK. After installing the SDK, the WPT installer is located here: C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\wpt_x64.msi. You will have to navigate to that folder and double click the msi file to install it.

After everything is installed, open an Administrator command prompt by clicking Start -> All Programs -> Accessories, right clicking on Command Prompt and choosing Run as administrator. In the console window, start xperf with this command:

xperf -on DiagEasy

The performance monitor starts running in the background, logging data about all the running processes on your system.

The next step is to start DPC Latency Checker, and watch the pretty scrolling bars until you see a latency spike. You should let it run for at least 20 seconds or so. After you see a spike, go back over to the console window and stop the performance monitor with this command:

xperf -d trace.etl

This will stop the monitor from logging data, and write the results into the file trace.etl. At this point, you've got all the data you need to diagnose your DPC latency problem.

Start the Performance Analyzer to view the results with this command:

xperf trace.etl

You'll see your trace data in a pretty line graph:

Performance Analyzer results

Scroll down to the DPC CPU Usage line chart, right click on it, and choose Summary Table. You'll see a summary of the processes that were captured in your xperf trace.  Click on the Max Actual Duration [ms] column heading to sort the processes by descending maximum duration. The process at the top (with a ridiculously high number) will be your culprit. (This screenshot is just an example, no offending processes here...)

DPC usage summary

In my case, it was dxgkrnl.sys with a max actual duration of something like 32 milliseconds, which is way out of line. It turns out that this process belongs to my NVIDIA 8400M GS laptop video card.

After some more research, I learned that Powermizer is the culprit. This is an NVIDIA service that toggles the speed of the graphics adapter based on need, so when you aren't doing anything graphics intensive the clock speed drops. A great idea in theory, but in practice you get a massive DPC latency spike when the switch is flipped.

My solution was to turn of Powermizer. Apparently there is a utility to do this, but it's nowhere to be found on my system after installing the latest NVIDIA driver package. There are also some registry keys you can modify, but once again I don't have those keys in my registry. The easiest way to add the Powermizer registry keys and set them to the correct values is to use the Powermizer Switch utility by xsmile.

I ran the utility, rebooted, and fired up DPC Latency Checker. No spikes!

latencyhowto
Posted by: Scott Metoyer
Last revised: 26 Jan, 2012 03:45 AM History

Comments

Alejandro
Alejandro
26 Jan, 2012 03:08 AM @ version 4

Hey very very nice tut/fix, thanx a lot.

I too own an M1530: Mine has a 2.2Ghz Intel C2D proc. 2 GB RAM Intel 4965AGN wireless card nVidia GeForce 8600M etc..

I did the Windows Performance Toolkit thing just to find out its ndis.sys the process thats making my M1530 have high DPC spikes every 10 seconds or so..

The Max actual duration shows 6+ seconds on "function" 0x890086b8 and 1.5+ seconds on function 0x89008945.

Searching on the internet makes me think its not an nvidia or intel (wireless) process, but rather one that comes with windows wich makes me think I cant uninstall it for example.

Btw, when I disable my wireless card some spikes (the bigger ones) go away.

Im gonna try and see if these spikes relate in any way to Nvidia''s powermizer..

Other than that, dunno what to do.

Any suggestions?

Alex

Alejandro
Alejandro
26 Jan, 2012 03:09 AM @ version 4

Oh BTW forgot to put pictures:

Here's WPT's window with ndis.sys DPC spike:

http://img263.imageshack.us/i/wpa.png/

That was one of these spikes:

http://img697.imageshack.us/i/dpcwirelesson.png/

Then, you disable the wireless card and get almost no DPC spikes ( that little spike's maybe caused by nvidia powermizer?)

http://img695.imageshack.us/i/dpcwirelessoff.png/

26 Jan, 2012 03:10 AM @ version 4

Just wanted to chime in and say that for me, the problem turned out to be Nvidia's drivers. Since my graphics card, an 8600M GT is pretty outdated, I haven't updated the drivers in a while (and Dell doesn't list any new ones on its support site). But if you go to nvidia's driver page, they recommend the latest drivers (as well as Dell's A12 BIOS). After I installed them, my latency spikes all fell below 1500 or so.

Tony Tiger
Tony Tiger
26 Jan, 2012 03:11 AM @ version 4

I have a Dell XPS M1330. Much the same as yours but with a smaller screen. I originally had Vista and had heaps of dropouts when playing Traktor Scratch. It wasn't too bad on the internal card, but as soon as I bought the NI Studio 2 DJ Card, the dropouts were about every 20-30 seconds.

I disabled everything in the BIOS and Device Manger, but same issue.

I wiped and installed Windows 7 and tried it right away and it was working perfectly. But then, I installed everything else including drivers and the problem was back worse than ever.

It was when I uninstalled the video drivers and went back to VGA that I found the culprit and this led me to your post. I was going to leave it on VGA and be without graphics performance, aero etc, but now I can have both. You rock. Thanks heaps.

TTT

26 Jan, 2012 03:11 AM @ version 4

Hey, you saved my weekend! :-)

On my MacBook Pro the dxgkrnl.sys was the problem, too. Google directed me to here and your link to Powermizer Switch was the solution. It stooped the spikes and I can go on making music.

I have used LatencyMon to find the interrupting driver. It's an AllInOne tool and the easiest way to find out, which driver causes problems. http://resplendence.com/latencymon

Cheers, Sebastian

Per
Per
26 Jan, 2012 03:12 AM @ version 4

Hi!

FYI, I got rid of my every 20th second 2000uS latency by disabling the "PCCompanion.exe",a process created by Sony-Ericsson mobile phone software.

Maybe someone has benefit of this information.

Cheers!

Samuel
Samuel
26 Jan, 2012 03:12 AM @ version 4

I have the same problem the only solution i've found is to diseable the wi-fi and to remove the battery lol

James
James
26 Jan, 2012 03:13 AM @ version 4

Hey there,

Just wanted to say thanks, man. You really saved me with this post. I have an HP laptop with 8400M GS, and the latency thing was driving me crazy. I have an external ASIO sound card which I knew in theory should be able to work at extremely low latency, but just couldn't get it going, having tried nearly everything else I finally found your page! The Powermizer Swith is the bomb!

Jessica
Jessica
26 Jan, 2012 03:13 AM @ version 4

I have an XPS M1330, and was experiencing HUGE downclocking; installed GPUz, and it showed the step down from max as I was playing WoW. It would start out at 80-100fps, and within ten minutes playing I was lucky to get over 10fps. I have the latest nVidia driver and BIOS, and spent hours upon hours trying to find a correction for this PowerMizer issue.

As it turns out, however, it was a much much simpler fix! This may or may not apply to you guys, but if someone comes here looking for help they're having the same types of problems.

GPUz would show downclocking in tandem with the throttling in game; installed CPUz and found the GPU was also slowing the CPU speed by 2/3s!! Holy moly no wonder the game was unplayable. I felt the heat coming off my laptop was excessive; GPUz showed it running in the 80-85C range - which is normal according to nVidia. Turns out its NOT normal and my whole problem was solved with a $5 can of compressed air. I took the panels off the back of the laptop and blew five or six massive bunnies out of the heat sink/fan unit. I take very good care of my computer but I had overlooked this simple thing, and almost fried my computer. It now runs WoW at a steady 60+ fps, even in traditional high-lag areas, and never gets warmer than 74C. I no longer need to use the PowerMizer switch, Vista Services Optimizer or any other graphics assist. These are wonderful tools (along with GPUz and CPUz) but for me, it turned out to be a silly, overlooked maintenance issue. Lesson learned and maybe one or two more people out there might find this helpful.

26 Jan, 2012 03:14 AM @ version 4

Do you guys think this will work for my GeForce 8600 GT on my desktop?

It has Win xp sp2? Has anyone done this on xp?

Your Comments

Used for your gravatar. Not required. Will not be public.
Posting code? Indent it by four spaces to make it look nice. Learn more about Markdown.

Preview