Re: [patch] voluntary-preempt-2.6.9-rc1-bk4-Q5
Ingo Molnar <mingo <at> elte.hu>
2004-09-01 17:09:05 GMT
* Mark_H_Johnson <at> raytheon.com <Mark_H_Johnson <at> raytheon.com> wrote:
> >since the latency tracer does not trigger, we need a modified tracer to
> >find out what's happening during such long delays. I've attached the
> >'user-latency-tracer' patch ontop of -Q5, which is a modification of the
> >latency tracer.
>
> The attached file has a set of user latency traces taken about 1 second
> apart at the start of running "latencytest" (a tracing version of it).
>
> The first few show the "fast path" result of calling write. The remaining
> ones vary with three different symptoms:
> - the fast path
> - a "long" delay (about 1000 traces)
lt.03 shows this long delay. Here are the relevant sections, the delay
seems to be triggered by the ALSA driver, by scheduling away
intentionally, in snd_pcn_lib_write1():
00000002 0.023ms (+0.001ms): snd_pcm_update_hw_ptr (snd_pcm_lib_write1)
00000002 0.023ms (+0.000ms): snd_ensoniq_playback1_pointer (snd_pcm_update_hw_ptr)
00000002 0.025ms (+0.002ms): snd_pcm_playback_silence (snd_pcm_update_hw_ptr)
00000002 0.026ms (+0.000ms): add_wait_queue (snd_pcm_lib_write1)
00000000 0.027ms (+0.000ms): schedule_timeout (snd_pcm_lib_write1)
00000000 0.027ms (+0.000ms): __mod_timer (schedule_timeout)
then it sleeps 700 usecs and is woken up by the soundcard's IRQ via
snd_pcm_period_elapsed():
(Continue reading)