On 10/5/05, Jung-uk Kim <jkim_at_freebsd.org> wrote: > On Wednesday 05 October 2005 09:13 am, Peter Edwards wrote: > > Take 2 for the biodone() panics: > > > > acd_geom_start() implements request limiting by breaking up a large > > request in the passed bio into a sequence of smaller ones. As each > > request is created, acd_strategy is invoked to start the IO. > > > > However, I think this IO can complete while still issuing the child > > requests, leading to the parent being retired early. (ie, when a > > child operation completes, it checks if its the last operation to > > complete, and, if so, retires the parent: see g_std_done.) > > > > The attached patch makes my qemu box much more reliable (I could > > crash a qemu hosted system 100% with a "tar fc" of the 6.0-BETA > > bootonly ISO without the patch, and it's gone through many > > iterations fine with it) > > > > Any opinions/testing results welcome. > > I think you nailed it! It's a shame that I had the same theory and I > was staring at the same code with scratching my head for hours but I > couldn't find proper fix. :-( Tested with QEMU 0.7.2 from ports/qemu > for a while with no regression. Cool, thanks for the feedback! > > BTW, minor style comment. Please do s/0/NULL/. Ah. Noted, thanks.Received on Wed Oct 05 2005 - 15:20:33 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:44 UTC