tech-kern archive

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

Re: kern/39052: assertion "!ISSET(bp->b_cflags, BC_BUSY)" failed



On Fri, Jun 27, 2008 at 08:37:37PM +0200, Manuel Bouyer wrote:
> [...]
> 
> So we set BC_BUSY just before releasing bufcache_lock, on a buffer which is
> in the LRU queue. That's why we're getting the panic later.
> 
> Now, is it OK to have a dirty buffer in the LRU queue ? It looks like
> we could recycle dirty buffers from the LRU queue without flushing them
> to disk first, isn't it ?

One case where this can happen is though bdwrite(), which sets
BO_DELWRI before calling brelse(). I added a check for this in brelsel()
(putting a BO_DELWRI buffer in one of the free lists), and got several
different traces; but it always has bdwrite() in it.

Where do we go from here ?

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


Home | Main Index | Thread Index | Old Index