Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jul 2004 12:40:46 -0400 (EDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Norikatsu Shigemura <nork@FreeBSD.org>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: rip6_output WITNESS warning
Message-ID:  <Pine.NEB.3.96L.1040729123927.46374E-100000@fledge.watson.org>
In-Reply-To: <200407291639.i6TGdIP5037477@sakura.ninth-nine.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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)
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1040729123927.46374E-100000>