LOR: so_snd_sx vs bufwait

John Baldwin jhb at freebsd.org
Thu Aug 27 14:16:48 UTC 2009


On Thursday 27 August 2009 7:34:03 am Robert Watson wrote:
> 
> On Thu, 27 Aug 2009, pluknet wrote:
> 
> > This is a FreeBSD 9.0-CURRENT i386. The LOR was caught via stress2 suite. I 
> > guess sblock() (uipc_sockbuf.c:148 here) was called from sosend_generic() 
> > (which is at line uipc_socket.c:1436).
> 
> This is probably the "right" order, as opposed to the wrong one.  Could you 
> look at witness's dynamic order information in DDB or via sysctl and see what 
> the "other" order is?  Alternatively, hard-code this harder in subr_witness 
> and then the other order will be reported instead.

I suspect the NFS client will perform socket I/O while holding a buffer
which would give the other order.  I'm not sure you can trigger a deadlock
as a socket used for NFS is never read/written to directly by userland
however.

-- 
John Baldwin


More information about the freebsd-current mailing list