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 simplified. 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 -- 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.Received on Tue Sep 07 2004 - 09:37:04 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:10 UTC