Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Aug 2009 08:27:03 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-current@freebsd.org
Cc:        pluknet <pluknet@gmail.com>, Robert Watson <rwatson@freebsd.org>
Subject:   Re: LOR: so_snd_sx vs bufwait
Message-ID:  <200908270827.03670.jhb@freebsd.org>
In-Reply-To: <alpine.BSF.2.00.0908271233080.61512@fledge.watson.org>
References:  <a31046fc0908270402l6718ce3ak5d079b944c448679@mail.gmail.com> <alpine.BSF.2.00.0908271233080.61512@fledge.watson.org>

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908270827.03670.jhb>