Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jul 2006 15:46:46 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        User Freebsd <freebsd@hub.org>
Cc:        Kostik Belousov <kostikbel@gmail.com>, freebsd-stable@freebsd.org
Subject:   Re: file system deadlock - the whole story?
Message-ID:  <20060719154447.K5132@fledge.watson.org>
In-Reply-To: <20060719112208.Y1799@ganymede.hub.org>
References:  <E1FxzUU-000MMw-5m@cs1.cs.huji.ac.il> <20060705100403.Y80381@fledge.watson.org> <cone.1152136419.991036.72616.1000@zoraida.natserv.net> <20060705234514.I70011@fledge.watson.org> <20060715000351.U1799@ganymede.hub.org> <20060715035308.GJ32624@deviant.kiev.zoral.com.ua> <20060718074804.W1799@ganymede.hub.org> <20060719112424.GK1464@deviant.kiev.zoral.com.ua> <20060719082627.H1799@ganymede.hub.org> <20060719151327.H5132@fledge.watson.org> <20060719112208.Y1799@ganymede.hub.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 19 Jul 2006, User Freebsd wrote:

>> Yes, this was going to be my next question -- if you're seeing wedges under 
>> load and there's a common controller in use, maybe we're looking at a 
>> driver bug.  Bugs of those sort typically look a lot like what you 
>> describe: an I/O is "lost" and so eveything that depends on the I/O wedges 
>> waiting for it, leading to a lot of processes hanging around waiting for 
>> vnode locks, etc.
>
> 'k, but how do we debug *that*? :( If it was one, I'd suspect hardware ... 
> but *three*, and only acting up *after* upgrading to FreeBSD 6.x, and only 
> acting up under load ...

There are two normal approaches:

(1) Switch controllers and see if the problem goes away, then blame the
     controller that was replaced. :-)

(2) Debug the driver when the system is in the wedged state.  When Scott Long
     helped me out with an identical problem with the 3ware driver a few years
     ago, he basically added debugging output for the driver in the debugger to
     list the state of outstanding I/Os, count the number of in-bound,
     out-bound I/Os, etc, to try and find where the missing one was leaked.  My
     impression is that once he had confirmed the presence of the problem, it
     was fairly easy to fix, but that confirming it required quite a bit of
     paperwork.

Robert N M Watson
Computer Laboratory
University of Cambridge



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