tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: biodone() and splbio ?



On Tue, Jan 19, 2010 at 10:46:26PM +0000, Mindaugas Rasiukevicius wrote:
> Manuel Bouyer <bouyer%antioche.eu.org@localhost> wrote:
> > On Tue, Jan 19, 2010 at 10:43:04PM +0100, Manuel Bouyer wrote:
> > > [...]
> > > If not, dk.c needs to be fixed to raise to splbio() in its done routine.
> > > raidcframe already does it. I suspect ccdiodone() and vndiodone()
> > > need it too.
> > 
> > Maybe not; it seems ccd is MP-safe.
> > For vnd, the lack of appropriate spl call here can corrupt sc_active count,
> > but it seems it can't corrupt the buffer queue.
> 
> While it is MP-safe, I wonder why sc_iolock is not IPL_BIO?
> It looks like a bug to me.

IPL_BIO locks are for for locks used in interrupt routines,
isn't it ? I don't think anything in vnd can be called from
interrupt context, as biodone specificallty avoids this.

One thing that could do it was the Xen disk backend driver, but this
has been fixed long ago (I think LOCKDEBUG would complain
about it).

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index