Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Feb 2012 15:20:54 -0700
From:      Scott Long <scottl@samsco.org>
To:        Alex Samorukov <ml@os2.kiev.ua>
Cc:        freebsd-stable@freebsd.org, Peter Jeremy <peterjeremy@acm.org>
Subject:   Re: disk devices speed is ugly
Message-ID:  <DF15DE9F-F145-4BAD-A8C0-B74033739207@samsco.org>
In-Reply-To: <4F429DFB.8050003@os2.kiev.ua>
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> <4F429DFB.8050003@os2.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

On Feb 20, 2012, at 12:24 PM, Alex Samorukov wrote:

> On 02/15/2012 05:50 AM, Scott Long wrote:
>>=20
>> 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.
>>=20
>> 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.
>=20

What you're asking for is to bring back the cached raw devices.  I don't =
have a strong opinion on this one way or another, except that it's a =
pretty specific use case.  Does the inherent performance gap with user =
land filesystems warrant this?  Maybe a simple cache layer can be put =
into FUSE that would allow client filesystems the same control over =
block caching and clustering that is afforded in the kernel?

Scott




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DF15DE9F-F145-4BAD-A8C0-B74033739207>