cvs commit: src/sys/kern vfs_bio.c
jkim at FreeBSD.org
Thu Sep 29 09:57:13 PDT 2005
On Thursday 29 September 2005 12:18 pm, Peter Edwards wrote:
> On 9/29/05, Jung-uk Kim <jkim at freebsd.org> wrote:
> > On Thursday 29 September 2005 09:03 am, Pawel Jakub Dawidek wrote:
> > > On Thu, Sep 29, 2005 at 10:37:20AM +0000, Peter Edwards wrote:
> > > +> peadar 2005-09-29 10:37:20 UTC
> > > +>
> > > +> FreeBSD src repository
> > > +>
> > > +> Modified files:
> > > +> sys/kern vfs_bio.c
> > > +> Log:
> > > +> Close a race in biodone(), whereby the bio_done field of
> > > the passed +> bio may have been freed and reassigned by the
> > > wakeup before being +> tested after releasing the bdonelock.
> > > +>
> > > +> There's a non-zero chance this is the cause of a few of
> > > the crashes +> knocking around with biodone() sitting in the
> > > stack backtrace.
> > >
> > > Should this fix the panic on boot in vmware?
> > I thought that might be it, too. I tried it with 6.0-BETA5 on
> > QEMU but no change. :-(
> Ah: If it fails in QEMU, I might be able to reproduce it.
FYI, the most reliable way to reproduce is to 'tar tfv BIG_TARBALL'
from CD-ROM image. I have been using 16 MB something.tar.bz2 file as
a test case. 100% success. BTW, depending on the emulated CD-ROM
mode, i. e., DMA or PIO, you will see different crash because of
different code path.
It seems the similar things happened on real hardware:
I am not sure they are really related but it looks very suspicious.
BTW, 5.4 is okay. 5.4 with ATA mkIII patch is okay. 6.0 without
PEEMPTION is okay. So, please don't blame it on the emulators. Like
sam@ said, it is good tool to find real bugs without causing real
> Do you mean you replaced the 6.0-BETA5 with your own kernel, yes?
More information about the cvs-src