From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [patch] voluntary-preempt-2.6.9-rc1-bk4-Q5 Date: Tue, 31 Aug 2004 20:19:20 +0200 Sender: linux-kernel-owner@vger.kernel.org Message-ID: References: <1093972819.5403.8.camel@krustophenia.net> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: <1093972819.5403.8.camel@krustophenia.net> To: Lee Revell Cc: Mark_H_Johnson@raytheon.com, Ingo Molnar , "K.R. Foley" , linux-kernel , Felipe Alfaro Solana , Daniel Schmitt , alsa-devel List-Id: alsa-devel@alsa-project.org At Tue, 31 Aug 2004 13:20:19 -0400, Lee Revell wrote: > > On Tue, 2004-08-31 at 11:17, Mark_H_Johnson@raytheon.com wrote: > > >I will be running some additional tests > > >- reducing preempt_max_latency > > >- running with sortirq and hardirq_preemption=0 > > >to see if these uncover any further problems. > > > > #1 - audio driver > > latency: 621 us, entries: 28 (28) > > ----------------- > > | task: latencytest/11492, uid:0 nice:0 policy:1 rt_prio:99 > > ----------------- > > => started at: snd_ensoniq_playback1_prepare+0x74/0x180 > > => ended at: snd_ensoniq_playback1_prepare+0x11d/0x180 > > =======> > > 00000001 0.000ms (+0.000ms): snd_ensoniq_playback1_prepare > > (snd_pcm_do_prepare) > > 00000001 0.014ms (+0.014ms): snd_es1371_dac1_rate > > (snd_ensoniq_playback1_prepare) > > 00000001 0.014ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_dac1_rate) > > 00000001 0.562ms (+0.548ms): snd_es1371_src_read (snd_es1371_dac1_rate) > > 00000001 0.562ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_src_read) > > 00000001 0.578ms (+0.015ms): snd_es1371_wait_src_ready > > (snd_es1371_src_read) > > 00000001 0.585ms (+0.006ms): snd_es1371_src_write (snd_es1371_dac1_rate) > > 00000001 0.585ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_src_write) > > 00000001 0.601ms (+0.015ms): snd_es1371_src_write (snd_es1371_dac1_rate) > > 00000001 0.601ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_src_write) > > 00000001 0.602ms (+0.001ms): snd_es1371_wait_src_ready > > (snd_es1371_dac1_rate) > > 00000001 0.616ms (+0.013ms): smp_apic_timer_interrupt > > (snd_ensoniq_playback1_prepare) > > > > or > > > > latency: 663 us, entries: 41 (41) > > ----------------- > > | task: latencytest/11492, uid:0 nice:0 policy:1 rt_prio:99 > > ----------------- > > => started at: snd_ensoniq_playback1_prepare+0x74/0x180 > > => ended at: snd_ensoniq_playback1_prepare+0x11d/0x180 > > =======> > > 00000001 0.000ms (+0.000ms): snd_ensoniq_playback1_prepare > > (snd_pcm_do_prepare) > > 00000001 0.004ms (+0.004ms): snd_es1371_dac1_rate > > (snd_ensoniq_playback1_prepare) > > 00000001 0.005ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_dac1_rate) > > 00000001 0.006ms (+0.001ms): snd_es1371_src_read (snd_es1371_dac1_rate) > > 00000001 0.006ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_src_read) > > 00000001 0.019ms (+0.012ms): snd_es1371_wait_src_ready > > (snd_es1371_src_read) > > 00000001 0.607ms (+0.588ms): snd_es1371_src_write (snd_es1371_dac1_rate) > > 00000001 0.608ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_src_write) > > 00000001 0.624ms (+0.016ms): snd_es1371_src_write (snd_es1371_dac1_rate) > > 00000001 0.624ms (+0.000ms): snd_es1371_wait_src_ready > > (snd_es1371_src_write) > > 00000001 0.626ms (+0.001ms): snd_es1371_wait_src_ready > > (snd_es1371_dac1_rate) > > 00000001 0.639ms (+0.013ms): smp_apic_timer_interrupt > > (snd_ensoniq_playback1_prepare) > > Hmm, looks like the es1371 takes ~0.5 ms to set the DAC rate. The ALSA > team would probably be able to help. Takashi, any ideas? Does the attached patch fix this problem? Takashi --- linux/sound/pci/ens1370.c 25 Aug 2004 09:57:03 -0000 1.64 +++ linux/sound/pci/ens1370.c 31 Aug 2004 18:17:45 -0000 @@ -513,6 +513,7 @@ r = inl(ES_REG(ensoniq, 1371_SMPRATE)); if ((r & ES_1371_SRC_RAM_BUSY) == 0) return r; + cond_resched(); } snd_printk("wait source ready timeout 0x%lx [0x%x]\n", ES_REG(ensoniq, 1371_SMPRATE), r); return 0;