Subject: Re: Buffers and vnodes
To: Andrew Doran <ad@netbsd.org>
From: Bill Stouder-Studenmund <wrstuden@netbsd.org>
List: tech-kern
Date: 06/25/2007 11:32:00
--d01dLTUuW90fS44H
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Mon, Jun 25, 2007 at 11:01:23AM -0700, Bill Stouder-Studenmund wrote:
> On Mon, Jun 25, 2007 at 02:13:51PM +0100, Andrew Doran wrote:
> > Hi,
> >=20
> > One of the remaining problem areas in vfs wrt locking is the buffer cac=
he.
> > With vfs & ffs run without the kernel lock, eventually the system will
> > deadlock with one or more threads stuck in in biowait. So I guess that
> > somewhere the necessary locks are not being taken, and it's losing stat=
e.
> >=20
> > I've been looking into simplifying the locking, as it's unclear what's
> > covered by the long term lock (B_BUSY) and the short term lock
> > (b_interlock). One thing I'd like to do is replace b_interlock with a
> > pointer to the interlock for the vnode that the buffer is currently
> > associated with.
Thinking about this, what is the locking protocol for unassociating a=20
buffer with a vnode? Also, do we ever change association from one vnode to=
=20
another? If so, what protocol should we follow then?
Take care,
Bill
--d01dLTUuW90fS44H
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (NetBSD)
iD8DBQFGgAogWz+3JHUci9cRAkc+AKCADZH9C13fDdRSy9YWrVMC0EjERQCfbWbR
t7aiQAH8/PdHEkLygr42qpg=
=ce95
-----END PGP SIGNATURE-----
--d01dLTUuW90fS44H--