Kernel work update
Matthew Dillon
dillon at apollo.backplane.com
Tue Jan 31 12:02:24 PST 2006
Ok, the parallel route table code has been committed. Be prepared for
some potential destabilization in HEAD.
The next bit of work is going to be the buffer cache's indexing
conversion from logical block numbers to byte-offset ranges. This
work is going to accomplish the following:
* Conversion of the buffer cache's logical block number indexing to
64 bit offset indexing. This entails removing the current
hash indexing and replacing it with a red-black tree and a great
deal of work in the filesystem code to convert all buffer cache
accesses from logical block numbers to byte offsets.
* Initial Integration of CCMS (Cache Coherency Management System). This
is really just going to be a skeleton, but since I've decided to use
RB trees for CCMS, and since CCMS tracks (offset,bytes) tuples, which
is precisely what the buffer cache needs now, I am going to use the
CCMS infrastructure as the new indexing method for the buffer cache.
* The ability to access the buffer cache at a high level without having
to have any knowledge of device or filesystem block sizes. This
will allow sendfile() to be cleaned up considerably
* And as a consequence of the above, this will also allow us to
directly access the buffer cache in vn_read/vn_write, above the VFS,
which should significantly improve cached file performance. I figure
we need some cool features we can brag about in addition to all the
infrastructure grunt work, so I'll be doing this too.
This work will eventually dovetail into the ZFS work, since ZFS needs
variable-sized buffers and this will provide a variable-sized buffer
API.
-Matt
More information about the Kernel
mailing list