NFS problem (non-sleepable locks held)

Robert Watson rwatson at freebsd.org
Tue Nov 11 15:53:52 PST 2003


On Tue, 11 Nov 2003, cosmin wrote:

> I'm getting the following message when transfering data to a
> freebsd-current server via an nfs mount from another fbsd client. 
> 
> malloc() of "64" with the following non-sleepable locks held:  exclusive
> sleep mutex inp r = 0 (0xc1d250ac) locked @
> /usr/src/sys/netinet/udp_usrreq.c:378
> 
> The message shows up 12 times and then it doesn't show up anymore, even
> if I stop the transfer and start it again.  This server uses the nge
> driver for its network card.  It's running the sources from yesterday,
> Nov 10 2003. 
> 
> I've been having problems with one of our machines freezing up during
> long nfs transfers, and now i'm trying to reproduce the freeze on this
> test machine.  So far no luck, and the only oddity i've been getting is
> the above message. 
> 
> Could the above message be causing the freezes ? 

Could you hook up a serial console and turn on debug.witness_ddb.  When
you get this warning, you'll drop into the console debugger.  Type in
"trace" to get a stack trace.  You can then continue and turn it off again
(or drop into the debugger a few more times until you're able to run it
:-).  Basically, something is calling malloc with M_WAITOK while holding a
mutex.  Potentially this could cause stalls or resource deadlocks, but I
think it's likely not the source of your freezes.  On the other hand, it's
definitely worth fixing, and if it fixes the symptoms you're seeing, even
better :-).

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




More information about the freebsd-current mailing list