I used the following xperf command to get an overview of the DPC activity on your system:
"C:\Program Files (x86)\Windows Kits\10\Windows Performance
Toolkit\xperf.exe" -I DIOMBPWS03-07-2016.23-45-01.etl -a dpcisr >
dpc.txt
In the DPC.txt I see you have some large spikes (over 1024µs execution time), that cause such audio glitches:
Total = 7394 for module USBXHCI.SYS
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 0, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 1, or 0.01%
Elapsed Time, > 8192 usecs AND <= 16384 usecs, 2, or 0.03%
Elapsed Time, > 16384 usecs AND <= 32768 usecs, 0, or 0.00%
Elapsed Time, > 32768 usecs AND <= 65536 usecs, 1, or 0.01%
Total, 7394
Total = 10028 for module afd.sys
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 0, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 4, or 0.04%
Total, 10028
Total = 7092 for module ndis.sys
Elapsed Time, > 512 usecs AND <= 1024 usecs, 1, or 0.01%
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 1, or 0.01%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 1, or 0.01%
Total, 7092
Total = 28123 for module ntoskrnl.exe
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 1, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 6, or 0.02%
Total, 28123
Total = 36449 for module storport.sys
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 0, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 4, or 0.01%
Total, 36449
Total = 29689 for module nvlddmkm.sys
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 1, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 3, or 0.01%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 1, or 0.00%
Total, 29689
The largest issues come from the USB 3.0 driver (USBXHCI.SYS
) of Windows 8.1 which has a spike of 0,032768s, which is terrible.
I looked at the callstack and see that the USB driver does some IO transfer (USBXHCI.SYS!UsbDevice_TransferEventHandler
). So disable some of the USB devices that you use until you find the device that causes the usage.