From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264386AbUHHE6X (ORCPT ); Sun, 8 Aug 2004 00:58:23 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S265119AbUHHE6X (ORCPT ); Sun, 8 Aug 2004 00:58:23 -0400 Received: from viper.oldcity.dca.net ([216.158.38.4]:28057 "HELO viper.oldcity.dca.net") by vger.kernel.org with SMTP id S264386AbUHHE6V (ORCPT ); Sun, 8 Aug 2004 00:58:21 -0400 Subject: Re: [Jackit-devel] Re: xruns From: Lee Revell To: Steve Harris Cc: jackit-devel , Ingo Molnar , William Lee Irwin III , linux-kernel In-Reply-To: <20040807222832.GA29571@login.ecs.soton.ac.uk> References: <20040807205138.4d170cfd@mango.fruits.de> <1091916076.894.23.camel@mindpipe> <20040807222832.GA29571@login.ecs.soton.ac.uk> Content-Type: text/plain Message-Id: <1091941106.1183.76.camel@mindpipe> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Sun, 08 Aug 2004 00:58:27 -0400 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 2004-08-07 at 18:28, Steve Harris wrote: > On Sat, Aug 07, 2004 at 06:01:16 -0400, Lee Revell wrote: > > I have not found a good solution to this issue. It's possibe that this > > is an ALSA bug, though Steve Harris says this xrun is inevitable. I am > > not sure I understand why. > It looks like this one is actually real, because when I use the preempt-timing patch it corresponds to a report of a 10ms non-preemptible section. get_user_pages appears to be the offender. jackd does not print an xrun report here due to this code in alsa-driver.c: /* Delay (in process calls) before jackd will report an xrun */ #define XRUN_REPORT_DELAY 64 ... if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN && driver->process_count > XRUN_REPORT_DELAY) { ... print xrun errmsg ... } Presumably the author thought this behavior was by design. (jackd/6566): 10952us non-preemptible critical section violated 1000 us preempt threshold starting at kmap_atomic+0x10/0x60 and ending at kunmap_atomic+0x8/0x20 [] dump_stack+0x17/0x20 [] dec_preempt_count+0x3c/0x50 [] kunmap_atomic+0x8/0x20 [] do_anonymous_page+0x8b/0x190 [] do_no_page+0x4e/0x310 [] handle_mm_fault+0xc1/0x170 [] get_user_pages+0x110/0x380 [] make_pages_present+0x68/0x90 [] do_mmap_pgoff+0x3e6/0x620 [] sys_mmap2+0x76/0xb0 [] syscall_call+0x7/0xb Lee