tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Finding out where biowait is stuck
On Mon, Feb 23, 2009 at 09:47:42AM -0500, Allen Briggs wrote:
> The process is in src/sys/vfs_bio.c:biowait(),
> but the question is why isn't it getting woken up--or if it's
> getting woken up, why aren't B_DONE or B_DELWRI set?
I closed a PR with a similar symptom last year. We had sloppy manipluation
of buf::b_flag. Updates were made without any protection against disk
interrupts.
It was exacerbated by the advent of RISC (load, modify, store) and softdep.
A large chunk of the softdep code runs in interrupt context, which broke
some of the undocumented assumptions that the pre-5.0 buffer code made about
updates to b_flag.
The good news is that it is fixed in 5.0. The bad news is that there is not
yet any remediation for this issue in earlier releases (that I know of).
Thanks,
Andrew
Home |
Main Index |
Thread Index |
Old Index