file system deadlock - the whole story?

Robert Watson rwatson at FreeBSD.org
Wed Jul 19 14:46:54 UTC 2006


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


More information about the freebsd-stable mailing list