On 02/15/2012 05:50 AM, Scott Long wrote:

What would be nice is a generic caching subsystem that any FS can use
- similar to the old block devices but with hooks to allow the FS to
request read-ahead, advise of unwanted blocks and ability to flush
dirty blocks in a requested order with the equivalent of barriers
(request Y will not occur until preceeding request X has been
committed to stable media).  This would allow filesystems to regain
the benefits of block devices with minimal effort and then improve
performance&  cache efficiency with additional work.

Any filesystem that uses bread/bwrite/cluster_read are already using the "generic 
caching subsystem" that you propose.  This includes UDF, CD9660, MSDOS, NTFS, XFS, 
ReiserFS, EXT2FS, and HPFS, i.e. every local storage filesystem in the tree except for 
ZFS.  Not all of them implement VOP_GETPAGES/VOP_PUTPAGES, but those are just 
optimizations for the vnode pager, not requirements for using buffer-cache services on 
block devices.  As Kostik pointed out in a parallel email, the only thing that was 
removed from FreeBSD was the userland interface to cached devices via /dev nodes.  This 
has nothing to do with filesystems, though I suppose that could maybe sorta kinda be an 
issue for FUSE?.
May be its possible to provide some generic interface for fuse based filesystems to use this generic cache? I can test it and report performance.

_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to