locking problems in IPv6 code

Robert Watson rwatson at FreeBSD.ORG
Sat Jun 21 08:39:49 PDT 2003


On Sat, 21 Jun 2003, Hiten Pandya wrote:

> On Thu, Jun 19, 2003 at 03:17:03PM -0700, John-Mark Gurney wrote:
> > I am running FreeBSD 5.1-R on a sparc64 machine, and am getting warnings
> > about mallocing data w/ a lock aquired.
> > 
> > dmesg output:
> > malloc() of "64" with the following non-sleepablelocks held:
> > exclusive sleep mutex netisr lock r = 0 (0xc0271890) locked @ net/netisr.c:215
> 
> 	For what it's worth, these warnings also appear if netisr direct
> 	dispatch is enabled with the fxp(4) driver.

These messages occur because our link layer address management code does
mallocs with M_WAITOK.  We need to teach that code to not wait when called
from the interrupt path, and pass back up failure modes, or avoid holding
locks while calling it.  Probably the former, although the latter is also
going to be good from a lock order perspective.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Network Associates Laboratories




More information about the freebsd-net mailing list