On 8 Nov 2010, at 20:45, Mathieu Bouchard wrote:
On Sun, 7 Nov 2010, Hans-Christoph Steiner wrote:
As far as I understand it, Pd only does the 20% idle thing when its not really doing anything. So if Pd is working hard, it'll stop spending 20% of the CPU idling.
It's not a real idle thing, it's a 20 % usage reported by 'top' while the user assumes that Pd shouldn't be doing anything. For example, you open pd, open no patches, and then 'top' reports 20 % usage and the computer gets a bit warmer than when Pd is not open.
Can anyone run Apple Shark on this, so that we know what it is doing when it's doing that ?
pd doing 'nothing':
10.6% 10.6% mach_kernel ml_set_interrupts_enabled
9.4% 9.4% DspFuncLib iZRedist::DSP::Denoise::processWithLookahead(int, float* const*, int)
6.7% 6.7% DspFuncLib iZRedist::DSP::FftImpl::FftComplex_InPlace(iZRedist::DSP::Cmplx*) const
6.3% 6.3% DspFuncLib DspFuncHelper::process_IIR_xmm_LR(float*, float*, float*, float*, unsigned int)
3.8% 3.8% DspFuncLib iZRedist::Util::Log(float)
2.8% 2.8% AppleHDA NativeInt32ToFloat32_X86
2.5% 2.5% DspFuncLib iZRedist::DSP::FftImpl::FftReal(float const*, iZRedist::DSP::Cmplx*) const
2.3% 2.3% DspFuncLib DspFuncDRC::_dynamicRangeControl(float*, float*, unsigned long, unsigned long)
2.0% 2.0% mach_kernel lo_mach_scall
Drilling down:
10.6% 10.6% mach_kernel ml_set_interrupts_enabled
0.0% 4.3% mach_kernel thread_dispatch
0.0% 3.0% mach_kernel thread_continue
0.0% 0.9% mach_kernel semaphore_destroy
0.0% 0.7% mach_kernel chudxnu_cpu_alloc
0.0% 0.4% mach_kernel inval_copy_windows
0.0% 0.4% mach_kernel fpnoextflt
0.0% 0.3% mach_kernel semaphore_signal_internal
0.0% 0.2% mach_kernel thread_call_enter1_delayed
0.0% 0.2% mach_kernel wait_queue_unlink
0.0% 0.1% mach_kernel wait_queue_sub_clearrefs
0.0% 0.0% mach_kernel wait_queue_assert_wait
0.0% 0.0% mach_kernel ast_taken
0.0% 0.0% mach_kernel wait_queue_set_unlink_all
9.4% 9.4% DspFuncLib iZRedist::DSP::Denoise::processWithLookahead(int, float* const*, int)
0.0% 9.4% DspFuncLib iZRedist::DSP::Denoise::Process(float const* const*, unsigned int, unsigned int, float* const*, unsigned int)
0.0% 9.4% DspFuncLib iZRedist::ANREngine::Process(unsigned int, float*)
0.0% 9.4% DspFuncLib iZRedist::ANRProcess(iZRedist::ANREngine*, unsigned int, float*)
0.0% 9.4% DspFuncLib DspFuncNoiseCanceller::process(unsigned long, unsigned long)
0.0% 9.4% DspFuncLib DspFuncManager::process(void const*, void const*, unsigned long, unsigned long)
0.0% 9.4% AppleHDA AppleHDAEngine::convertInputSamples_StereoToStereo_32(void const*, void*, unsigned long, unsigned long, _IOAudioStreamFormat const*, IOAudioStream*)
0.0% 9.4% AppleHDA AppleHDAEngine::convertInputSamples(void const*, void*, unsigned long, unsigned long, _IOAudioStreamFormat const*, IOAudioStream*)
0.0% 9.4% IOAudioFamily IOAudioStream::readInputSamples(IOAudioClientBuffer*, unsigned long)
0.0% 9.4% IOAudioFamily IOAudioEngineUserClient::performClientInput(unsigned long, IOAudioClientBufferSet*)
0.0% 9.4% IOAudioFamily IOAudioEngineUserClient::performClientIO(unsigned long, unsigned long, bool, unsigned long, unsigned long, unsigned long)
0.0% 9.4% mach_kernel iokit_user_client_trap
0.0% 9.4% mach_kernel get_user_regs
6.7% 6.7% DspFuncLib iZRedist::DSP::FftImpl::FftComplex_InPlace(iZRedist::DSP::Cmplx*) const
0.0% 6.6% DspFuncLib iZRedist::DSP::FftImpl::FftReal(float const*, iZRedist::DSP::Cmplx*) const
0.0% 4.0% DspFuncLib iZRedist::DSP::Fft::FftRealCcs(float const*, float*)
0.0% 4.0% DspFuncLib iZRedist::DSP::OversampledFilterbank::Decompose(float const* const*, int, float* const*, int, int)
0.0% 4.0% DspFuncLib iZRedist::DSP::Denoise::processWithLookahead(int, float* const*, int)
0.0% 4.0% DspFuncLib iZRedist::DSP::Denoise::Process(float const* const*, unsigned int, unsigned int, float* const*, unsigned int)
0.0% 4.0% DspFuncLib iZRedist::ANREngine::Process(unsigned int, float*)
0.0% 4.0% DspFuncLib iZRedist::ANRProcess(iZRedist::ANREngine*, unsigned int, float*)
0.0% 4.0% DspFuncLib DspFuncNoiseCanceller::process(unsigned long, unsigned long)
0.0% 4.0% DspFuncLib DspFuncManager::process(void const*, void const*, unsigned long, unsigned long)
0.0% 4.0% AppleHDA AppleHDAEngine::convertInputSamples_StereoToStereo_32(void const*, void*, unsigned long, unsigned long, _IOAudioStreamFormat const*, IOAudioStream*)
0.0% 4.0% AppleHDA AppleHDAEngine::convertInputSamples(void const*, void*, unsigned long, unsigned long, _IOAudioStreamFormat const*, IOAudioStream*)
0.0% 4.0% IOAudioFamily IOAudioStream::readInputSamples(IOAudioClientBuffer*, unsigned long)
0.0% 4.0% IOAudioFamily IOAudioEngineUserClient::performClientInput(unsigned long, IOAudioClientBufferSet*)
0.0% 4.0% IOAudioFamily IOAudioEngineUserClient::performClientIO(unsigned long, unsigned long, bool, unsigned long, unsigned long, unsigned long)
0.0% 4.0% mach_kernel iokit_user_client_trap
0.0% 4.0% mach_kernel get_user_regs
0.0% 2.7% DspFuncLib iZRedist::DSP::FftImpl::InvFftReal(iZRedist::DSP::Cmplx*, float*) const
0.0% 0.0% DspFuncLib iZRedist::DSP::Fft::FftRealCcs(float const*, float*)
6.3% 6.3% DspFuncLib DspFuncHelper::process_IIR_xmm_LR(float*, float*, float*, float*, unsigned int)
0.0% 6.2% DspFuncLib DspFuncEQ::_equalizer(float*, float*, unsigned long)
0.0% 6.2% DspFuncLib DspFuncEQ::process(unsigned long, unsigned long)
0.0% 6.2% DspFuncLib DspFuncManager::process(void const*, void const*, unsigned long, unsigned long)
0.0% 4.3% AppleHDA AppleHDAEngine::clipOutputSamples(void const*, void*, unsigned long, unsigned long, _IOAudioStreamFormat const*, IOAudioStream*)
0.0% 4.3% IOAudioFamily IOAudioStream::clipOutputSamples(unsigned long, unsigned long)
0.0% 4.3% IOAudioFamily IOAudioStream::clipIfNecessary()
0.0% 4.3% IOAudioFamily IOAudioStream::processOutputSamples(IOAudioClientBuffer*, unsigned long, unsigned long, bool)
0.0% 4.3% IOAudioFamily IOAudioEngineUserClient::performClientOutput(unsigned long, unsigned long, IOAudioClientBufferSet*, unsigned long, unsigned long)
0.0% 4.3% IOAudioFamily IOAudioEngineUserClient::performClientIO(unsigned long, unsigned long, bool, unsigned long, unsigned long, unsigned long)
0.0% 4.3% mach_kernel iokit_user_client_trap
0.0% 4.3% mach_kernel get_user_regs
So we're spending 17% CPU calling get_user_regs()?
Jamie