From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S266291AbUHaSTi (ORCPT ); Tue, 31 Aug 2004 14:19:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S266352AbUHaSTf (ORCPT ); Tue, 31 Aug 2004 14:19:35 -0400 Received: from cantor.suse.de ([195.135.220.2]:5861 "EHLO Cantor.suse.de") by vger.kernel.org with ESMTP id S266291AbUHaSTX (ORCPT ); Tue, 31 Aug 2004 14:19:23 -0400 Date: Tue, 31 Aug 2004 20:19:20 +0200 Message-ID: From: Takashi Iwai To: Lee Revell Cc: Mark_H_Johnson@raytheon.com, Ingo Molnar , "K.R. Foley" , linux-kernel , Felipe Alfaro Solana , Daniel Schmitt , alsa-devel Subject: Re: [patch] voluntary-preempt-2.6.9-rc1-bk4-Q5 In-Reply-To: <1093972819.5403.8.camel@krustophenia.net> References: <1093972819.5403.8.camel@krustophenia.net> User-Agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 MULE XEmacs/21.4 (patch 15) (Security Through Obscurity) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.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;