From owner-freebsd-current@FreeBSD.ORG Thu Jul 29 16:42:07 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 9088516A4CE; Thu, 29 Jul 2004 16:42:07 +0000 (GMT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2513843D60; Thu, 29 Jul 2004 16:42:07 +0000 (GMT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.11/8.12.11) with ESMTP id i6TGel8U050944; Thu, 29 Jul 2004 12:40:47 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)i6TGel9Y050941; Thu, 29 Jul 2004 12:40:47 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Thu, 29 Jul 2004 12:40:46 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Norikatsu Shigemura In-Reply-To: <200407291639.i6TGdIP5037477@sakura.ninth-nine.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@FreeBSD.org Subject: Re: rip6_output WITNESS warning 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: Thu, 29 Jul 2004 16:42:07 -0000 On Fri, 30 Jul 2004, Norikatsu Shigemura wrote: > Hi rwatson. > > I contacted WITNESS warning on boot(newest current) in my > SMP machine(PentiumIII x2). Similar to a problem we saw on IPv4. Could you try the following: - At or about line 379 of raw_ip6.c (raw6_output()), there's a call to M_PREPEND with the argumetn M_TRYWAIT. Could you make this M_DONTWAIT? - This code fails to properly check the return value. After the M_PREPEND() call, we should check if m is NULL, and if so, goto bad. Thanks! Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Principal Research Scientist, McAfee Research > > Mounting root from ufs:/dev/ad0s1a > Sleeping in "rip6_output" with the following non-sleepable locks held: > exclusive sleep mutex inp (raw6inp) r = 0 (0xc3181090) locked @ /devel/src/sys/netinet6/raw_ip6.c:346 > exclusive sleep mutex rip r = 0 (0xc08183cc) locked @ /devel/src/sys/netinet6/raw_ip6.c:744 > KDB: stack backtrace: > kdb_backtrace(c0814d74,e3d42aa8,1,1,2) at kdb_backtrace+0x2e > witness_warn(5,0,c0743b3f,c071c348,0) at witness_warn+0x1d3 > rip6_output(c312d800,c307e8a4,e3d42b84,c312d900,1c1c) at rip6_output+0x19b > rip6_send(c307e8a4,0,c312d800,c317fc00,c312d900) at rip6_send+0x146 > sosend(c307e8a4,c317fc00,e3d42c44,c312d800,c312d900) at sosend+0x87d > kern_sendit(c30159a0,3,e3d42cbc,0,c312d900) at kern_sendit+0x13c > sendit(c30159a0,3,e3d42cbc,0,c2e00d40) at sendit+0x19b > sendmsg(c30159a0,e3d42d14,c,431,3) at sendmsg+0x82 > syscall(2f,2f,2f,4,1) at syscall+0x2a0 > Xint0x80_syscall() at Xint0x80_syscall+0x1f > --- syscall (28, FreeBSD ELF32, sendmsg), eip = 0x680d63ef, esp = 0xbfbfed9c, ebp = 0xbfbfede8 --- > sym0:0:control msgout: 80 20 17 d. > > FreeBSD/i386 (nadesico.ninth-nine.com) (dcons) >