[wdmaudiodev] Re: Core processor enters idle state while APO is processing audio

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 2 Apr 2014 23:45:48 +0000

I think APO developers have the right to expect that APOProcess should only be 
called on an MMCSS thread, and therefore the CPU should be at full strength.

http://support.microsoft.com/ is the entry point for filing a support issue.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Eldad Kuperman
Sent: Wednesday, April 2, 2014 4:18 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Core processor enters idle state while APO is 
processing audio

Hi Matthew,

Actually we do use the Windows Performance Analyzer. We also know that the 
system clock has been changed (clocked down) during playback and this is the 
reason to the problems.
Is this wrong behavior is a system issue problem or is it expected to be 
handled gracefully by the APO developers?

We are being pushed by our customer to resolve this asap, can you please let me 
know what support link do you refer and what is the fastest way to get the 
assistance attention?

Thank you,
Dadi


From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
Sent: Thursday, April 3, 2014 1:59 AM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Core processor enters idle state while APO is 
processing audio

If you can narrow down the repro, the next step is to take some traces and file 
a support issue. The Windows Performance Analyzer might also be useful if you 
want to look into things on your side as well.

http://msdn.microsoft.com/en-us/library/windows/hardware/hh448170.aspx

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Dadi
Sent: Wednesday, April 2, 2014 3:42 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Core processor enters idle state while APO is 
processing audio

Hi Matthew,
No, it is Windows 8.1.
Is there any other information that can help?

Dadi

2014-04-03 1:28 GMT+03:00 Matthew van Eerde 
<Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>>:
The thread that APOProcess is running on should already be registered with the 
Multimedia Class Scheduler Service. This in turn should guarantee it runs at 
very high priority for short bursts.

If you're running on a Server SKU, the Multimedia Class Scheduler Service is 
basically neutered. Is it possible that those few production machines are all 
running the Server SKU?

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>]
 On Behalf Of Dadi
Sent: Wednesday, April 2, 2014 3:01 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Core processor enters idle state while APO is processing 
audio

Hi,
On few machines while audio is being played, the machine has entered an idle 
state that caused our processing inside APOProcess to process too slow and not 
return on time. This caused lost frames and bad noise has been heard.
Our code is optimized and the above case is rare but still occurs on few 
production machines. Note that we have three APOs running in memory (Render 
MFX, EFX and capture MFX) simultaneously.
Is there a way to programmatically avoid such case?

We tried to set the power parameter GUID_PROCESSOR_IDLE_DISABLE and this indeed 
prevented the processor to become idle and the problem didn't reproduced. We 
can use that in LockForProcess (to set the flag) and UnlockForProcess (to 
revert the old value of the flag).
But this way might not be the right way because this setting is a global power 
system setting that overwrites the user's active power scheme. Also - the user 
can modify the active power scheme at any time...
What is the best way (or the right way) to resolve it?
Also, isn't audiodg.exe responsible to protect the process thread from such 
case?

Thanks,
Dadi

Other related posts: