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