Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Sep 2010 18:00:33 +0200
From:      Andre Oppermann <andre@freebsd.org>
To:        Andriy Gapon <avg@freebsd.org>
Cc:        freebsd-fs@freebsd.org, jhell <jhell@DataIX.net>, Steven Hartland <killing@multiplay.co.uk>, Pawel Jakub Dawidek <pjd@freebsd.org>, freebsd-net@freebsd.org
Subject:   Re: zfs very poor performance compared to ufs due to lack of cache?
Message-ID:  <4C90EDA1.6020501@freebsd.org>
In-Reply-To: <4C90E869.8000400@freebsd.org>
References:  <5DB6E7C798E44D33A05673F4B773405E@multiplay.co.uk><AANLkTikNhsj5myhQCoPaNytUbpHtox1vg9AZm1N-OcMO@mail.gmail.com><4C85E91E.1010602@icyb.net.ua><4C873914.40404@freebsd.org><20100908084855.GF2465@deviant.kiev.zoral.com.ua><4C874F00.3050605@freebsd.org><A6D7E134B24F42E395C30A375A6B50AF@multiplay.co.uk><4C8D087B.5040404@freebsd.org><03537796FAB54E02959E2D64FC83004F@multiplay.co.uk><4C8D280F.3040803@freebsd.org><3FBF66BF11AA4CBBA6124CA435A4A31B@multiplay.co.uk><4C8E4212.30000@freebsd.org>	<B98EBECBD399417CA5390C20627384B1@multiplay.co.uk>	<D79F15FEB5794315BD8668E40B414BF0@multiplay.co.uk>	<4C90B4C8.90203@freebsd.org>	<6DFACB27CA8A4A22898BC81E55C4FD36@multiplay.co.uk>	<4C90D3A1.7030008@freebsd.org>	<0B1A90A08DFE4ADA9540F9F3846FDF38@multiplay.co.uk>	<4C90E328.20606@freebsd.org> <4C90E869.8000400@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 15.09.2010 17:38, Andriy Gapon wrote:
> on 15/09/2010 18:15 Andriy Gapon said the following:
>> on 15/09/2010 18:04 Steven Hartland said the following:
>>> Hmm, so taking a different track on the issue is the a way to make sendfile use data
>>> directly from ARC instead of having to copy it first?
>>
>> Well, theoretically everything is possible, but I am not sure if it's feasible.
>> It's a lot of work anyways, it should be a very specialized sendfile and a lot if
>> inter-layer knowledge and dependencies.
>> Don't hold your breath for it.
>
> Perhaps some middle-ground solution can be developed with less effort.
> This solution would be specific to filesystems that don't use buffer cache, so it
> wouldn't touch any pages, but instead it would use regular VOP_READ into a mbuf.
> So, there would be copying, but page caches won't be unnecessarily "polluted" with
> second copy of the data and this all would happen in kernel giving an advantage
> over userland solution with read(2)+send(2).

Is there a quick way of deciding within sendfile(2) whether a file resides
on a filesystem that doesn't use the buffer cache?

> Having said that, I see that OpenSolaris has a mechanism for something like that.
> The mechanism can either globally enabled or enabled for file over certain size.
> The mechanism uses dedicated kernel threads that get data using direct I/O, buffer
> and send it.
> That's my impression from a quick look, I may have gotten things wrong.

-- 
Andre



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