Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Feb 2012 20:24:43 +0100
From:      Alex Samorukov <ml@os2.kiev.ua>
To:        Scott Long <scottl@samsco.org>
Cc:        freebsd-stable@freebsd.org, Peter Jeremy <peterjeremy@acm.org>
Subject:   Re: disk devices speed is ugly
Message-ID:  <4F429DFB.8050003@os2.kiev.ua>
In-Reply-To: <CA28336C-8462-4358-9E68-B01EEB4237CE@samsco.org>
References:  <4F215A99.8020003@os2.kiev.ua> <4F27C04F.7020400@omnilan.de> <4F27C7C7.3060807@os2.kiev.ua> <CAJ-VmomezUWrEgxxmUEOhWnmLDohMAWRpSXmTR=n2y_LuizKJg@mail.gmail.com> <4F37F81E.7070100@os2.kiev.ua> <CAJ-Vmok9Ph1sgFCy6kNT4XR14grTLvG9M3JvT9eVBRjgqD%2BY9g@mail.gmail.com> <4F38AF69.6010506@os2.kiev.ua> <20120213132821.GA78733@in-addr.com> <20120214200258.GA29641@server.vk2pj.dyndns.org> <CA28336C-8462-4358-9E68-B01EEB4237CE@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F429DFB.8050003>