Re: Audio Drop-outs - VM?
Re: Audio Drop-outs - VM?
- Subject: Re: Audio Drop-outs - VM?
- From: Jeff Moore <email@hidden>
- Date: Mon, 31 Jan 2005 12:02:45 -0800
Do you lock a mutex in your render proc before signaling on the cond
var? If you do then more likely than not, the source of your drop outs
is Murphy's Law of Pre-emption. If there is any window at all that the
mutex could be contended when it needs to be locked by the render proc,
it will get hit.
If not, are you signed up for overload notifications? Are you getting
any?
Also, you can use Shark to see if you are getting any unwanted VM
activity. You can use other tools, ranging from the IO cycle telemetry
in HALLab to latecy traces using CALatencyLog in the PublicUtility
section of our SDK, to help you track down what's going on.
On Jan 30, 2005, at 6:48 PM, Ethan Funk wrote:
Hi all.
I am having a bit of difficulty with brief audio drop outs... sounds
like one render buffer worth. At first I thought it was a processor
loading problem, but even with "top" reporting 80% idle time, I'm
still getting the drop outs. Now I suspect it is a virtual memory
problem since it gets worse as I run a little test program that slowly
eats up memory.
My render call back does not do much... copies sample data from a 15
second ring buffer and sends a signal to another thread if the buffer
need another junk of data written in. No mutex or anything that could
block. I signal with a pthread conditional variable which souldn't
block if the render callback is the only thread that used it to wake
the filler thread - I think. Is it possible that the drop outs occur
when I get to a point in the ring buffer where the memory pager has to
page the data in from disk? And if so, what can I do to get the pager
to get it ahead of time or possible force the ring buffer to be
physical memory?
--
Jeff Moore
Core Audio
Apple
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden