In this scenario a Windows 8.1 device, despite well spec’d hardware wise, would get buzzing/clicking audio glitches during audio playback, typically when playing web content. In addition DRM’d web content like Amazon Prime stuttered completely, however it ran fine in HD on the same hardware in a Windows 7 virtual machine. The issue occurred within IE11, Chrome and Firefox on the Windows 8.1 device.
A quick workaround was to restart the Windows Audio Service which immediately stopped the audio glitches. But they kept coming back.
Using Windows Performance Recorder ( https://chentiangemalc.wordpress.com/2014/09/12/case-of-the-8-minute-windows-8-1-first-logon/ ) we recorded a 30 second trace while issue was occurring with the following options
- First Level Triage
- CPU Usage
- Disk I/O Activity
- File I/O Activity
- GPU Activity
- Scenario Analysis – Audio Glitches
- Scenario Analysis – Internet Explorer
- Scenario Analysis – Minifilter I/O Activity
From the first review, we can see the system is not really very heavily utilized:
In the trace I first checked Mini Filter Delays, Timeline by Driver, Process, Thread. By default it showed Process ID, but I changed it to Process Name, and added Stack. I dragged Process Name, and Stack into the “Group By Column”
In this case we were reproducing issue in Chrome.exe – chrome.exe had the most events (after wprui.exe)
The most busy Mini-Filter driver was WdFilter.sys – the Microsoft antimalware file system filter driver.
Expanding the stack we end up with SiWinAcc.sys – which is a Silicon Image SATALink Windows Accelerator Driver
In Device I/O we also see this as the most popular driver. (after fltrmgr.sys) We also see
Disabling this driver with http://live.sysinternals.com/autoruns.exe and restarting the system, could no longer reproduce the audio glitch.
In Windows Device Manager we can see we have Silicon Image SiI 3132 SATALink Controller – where we can look for updates/vendor to contact etc. In this case Silicon Image drive will be updated by the OEM manufacturer, so you need to contact who built your PC vendor/motherboard manufacturer/controller.
Afterwards we can see a change, when recording for about the same time period playing similar content:
To compare traces you can:
1) Open good trace “baseline” first
2) Open bad trace second
Clicking Window – New Comparative Analysis View
Then we select our traces:
We then added our Device I/O again, POSITIVE numbers here indicate the item occurred more frequently in the 2nd trace then in the baseline (good trace) Negative numbers indicate activity occurred less.
Recommend reading http://msdn.microsoft.com/en-us/library/windows/hardware/dn282270.aspx for more info on Comparative Analysis if you are not familiar with it.
If we want, we can then do deeper investigation to see why this driver is a problem, do we need it/etc.