From owner-freebsd-current@FreeBSD.ORG Mon Apr 19 09:40:28 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 27A8F16A4CF; Mon, 19 Apr 2004 09:40:28 -0700 (PDT) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id B83C543D2D; Mon, 19 Apr 2004 09:40:27 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.12.9p2/8.12.9) with ESMTP id i3J5R47E040111; Sun, 18 Apr 2004 22:27:08 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <200404190527.i3J5R47E040111@gw.catspoiler.org> Date: Sun, 18 Apr 2004 22:27:04 -0700 (PDT) From: Don Lewis To: rwatson@FreeBSD.org In-Reply-To: MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii cc: current@FreeBSD.org Subject: Re: Series of witness warnings from PCM X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 16:40:28 -0000 On 31 Mar, Robert Watson wrote: > > I loaded up my XFree86 4.3 / KDE 3.2.1 workstation with WITNESS today to > test some network locking changes, and got the attached set of warnings. > Not sure if they're well-trodden ground, but my source is pretty > up-to-date, and the branch has no local changes in pcm. > > Robert N M Watson FreeBSD Core Team, TrustedBSD Projects > robert@fledge.watson.org Senior Research Scientist, McAfee Research > > ... > pcm0: at port 0x220-0x22f,0x388-0x38b,0x534-0x537 irq 5 drq 0,1 on isa0 > pcm0: [GIANT-LOCKED] > ... > malloc() of "256" with the following non-sleepable locks held: > exclusive sleep mutex pcm0 (sound cdev) r = 0 (0xc446ac00) locked @ /local0/rwatson/rwatson_netperf/sys/dev/sound/pcm/dsp.c:215 > Stack backtrace: > backtrace(1,c080a8a0,c1045c00,2,dcbf28b8) at backtrace+0x12 > witness_warn(5,0,c07cc264,c077a3cd) at witness_warn+0x196 > uma_zalloc_arg(c1045c00,0,2) at uma_zalloc_arg+0x85 > malloc(100,c080a8a0,2,c4473480,c05f5316) at malloc+0xb7 > sndbuf_resize(c447b000,2,80,c4469990,dcbf2950) at sndbuf_resize+0x80 > msschan_setblocksize(c4469990,c4472d94,80,c4472d94,80) at msschan_setblocksize+0x18 > chn_setblocksize(c4473480,400,0,c4472d00,c4472d94) at chn_setblocksize+0x36f > chn_tryspeed(c4473480,1f40,c4472d94,0,c4473480) at chn_tryspeed+0x149 > chn_tryformat(c4473480,1,0,c4473480,1f40) at chn_tryformat+0xaf > chn_setformat(c4473480,1,0,0,c4473480) at chn_setformat+0x15 > chn_reset(c4473480,1,0,1,c4474000) at chn_reset+0xd4 > dsp_open(c4479200,6,2000,c458ae70,c4a62000) at dsp_open+0x21f > spec_open(dcbf2a6c,dcbf2b28,c0635938,dcbf2a6c,80) at spec_open+0x2a2 > spec_vnoperate(dcbf2a6c) at spec_vnoperate+0x13 > vn_open_cred(dcbf2be4,dcbf2ce4,0,c4a62000,9) at vn_open_cred+0x3c0 > vn_open(dcbf2be4,dcbf2ce4,0,9,c086f900) at vn_open+0x1e > kern_open(c458ae70,808c0fc,0,6,0) at kern_open+0xd8 > open(c458ae70,dcbf2d14,3,26,200292) at open+0x18 > syscall(2f,2f,2f,8080000,0) at syscall+0x217 > Xint0x80_syscall() at Xint0x80_syscall+0x1d > --- syscall (5), eip = 0x286f72f3, esp = 0xbfbfe21c, ebp = 0xbfbfe248 --- I'm aware of this problem, but haven't had any time to devote to fixing it. > lock order reversal > 1st 0xc446b140 pcm0 (sound softc) @ /local0/rwatson/rwatson_netperf/sys/dev/sound/isa/mss.c:179 > 2nd 0xc446a800 pcm0:play:0 (pcm play channel) @ /local0/rwatson/rwatson_netperf/sys/dev/sound/pcm/channel.c:503 > Stack backtrace: > backtrace(0,ffffffff,c0938e28,c0938d60,c080c13c) at backtrace+0x12 > witness_checkorder(c446a800,9,c0a6395b,1f7) at witness_checkorder+0x593 > _mtx_lock_flags(c446a800,0,c0a6395b,1f7,c4472d00) at _mtx_lock_flags+0x67 > chn_intr(c4473480,1097fd20,c446adc0,c197cb00,c197fd20) at chn_intr+0x1b > mss_intr(c4472d00) at mss_intr+0x7d > ithread_loop(c197cb00,d743ed48,c197cb00,c05ce64c,0) at ithread_loop+0x11c > fork_exit(c05ce64c,c197cb00,d743ed48) at fork_exit+0xa8 > fork_trampoline() at fork_trampoline+0x8 > --- trap 0x1, eip = 0, esp = 0xd743ed7c, ebp = 0 --- I think this one is driver specific.