HEADSUP: phk_bufwork IFP4 later this month.

Poul-Henning Kamp phk at phk.freebsd.dk
Tue Sep 7 04:37:04 PDT 2004

Throughout the second half of this month I will integrate the
phk_bufwork branch into HEAD/6-CURRENT in a sequence of commits.

There are a couple of BURN_BRIDGES sideeffects of this:

   (old)vinum gets removed.
	The usage of struct buf in oldvinum would need to be seriously
	reworked to work with the new struct bufobj and this is far more
	work than makes sense.  Geom_vinum will have to fill the void.

   Device nodes on non-DEVFS filesystems gets desupport.
	This is a step in the direction of getting vnode locking

   Temporary suspension of the FFS specific VOP_GETPAGES().
	FFS will use the generic getpages implementation like
	all other filesystems for now.  It will come back further
	down the road when the map/umap and scatter/gather semantics
	of struct bio gets ironed out.

On the plus side the highlights are:

   Introduction of struct bufobj as the buffercache handle.
	All vnodes contain a bufobj, so a lot is just like it used
	to be, but a general movement from using vnodes to bufobj
	in a lot of places in the buffercache is the result.
	Eventually, this will make it possible for geom classes to
	use the buffer cache for caching metadata.

   Local filesystems use geom consumer instead of vnode.
	This takes some of the recursion and lock pressure off the
	vnode layer.  Sideeffects are the ability to have multiple
	read-only mounts of the same filesystem and correct r/w
	access semantics during remount up/downgrades.

You can help test this code already now by running the phk_bufwork
branch from perforce.


Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

More information about the freebsd-current mailing list