From: Liu Yuan <namei.unix@gmail.com>
To: HAYASAKA Mitsuo <mitsuo.hayasaka.hu@hitachi.com>
Cc: hanwen@xs4all.nl, Han-Wen Nienhuys <hanwenn@gmail.com>,
fuse-devel@lists.sourceforge.net, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, Miklos Szeredi <miklos@szeredi.hu>,
yrl.pp-manager.tt@hitachi.com
Subject: Re: [fuse-devel] [RFC PATCH 0/5] fuse: make maximum read/write request size tunable
Date: Thu, 12 Jul 2012 14:13:05 +0800 [thread overview]
Message-ID: <4FFE6AF1.8010802@gmail.com> (raw)
In-Reply-To: <4FFE6785.80201@hitachi.com>
On 07/12/2012 01:58 PM, HAYASAKA Mitsuo wrote:
> Hi Yuan and Han-Wen,
>
> Thank you for your comments.
>
> (2012/07/06 22:58), Han-Wen Nienhuys wrote:
>> On Fri, Jul 6, 2012 at 2:53 AM, Liu Yuan<namei.unix@gmail.com> wrote:
>>> On 07/05/2012 06:50 PM, Mitsuo Hayasaka wrote:
>>>> One of the ways to solve this is to make them tunable.
>>>> In this series, the new sysfs parameter max_pages_per_req is
>>>> introduced.
>>>> It limits the maximum read/write size in fuse request and it can be
>>>> changed from 32 to 256 pages in current implementations. When the
>>>> max_read/max_write mount option is specified, FUSE request size is set
>>>> per mount. (The size is rounded-up to page size and limited up to
>>>> max_pages_per_req.)
>>>
>>> Why maxim 256 pages? If we are here, we can go further: most of object
>>> storage system has object size of multiple to dozens of megabytes. So I
>>> think probably 1M is too small. Our distribution storage system has 4M
>>> per object, so I think at least maxim size could be bigger than 4M.
>>
>> The maximum pipe size on my system is 1M, so if you go beyond that,
>> splicing from the FD won't work.
>>
>> Also, the userspace client must reserve a buffer this size so it can
>> receive a write, which is a waste since most requests are much
>> smaller.
>>
>
> I checked the maximum pipe size can be changed using fcntl(2) or
> /proc/sys/fs/pipe-max-size. It is clear that it is not a fixed value.
>
> Also, it seems that there is a request for setting the maximum number
> of pages per fuse request to 4M (1024 pages). One of the reasons to
> introduce the sysfs max_pages_per_req parameter is to set a threshold
> of the maximum number of pages dynamically according to the
> administrator's demand, and root can only change it.
>
> So, when the maximum value is required to be set to not more than the
> pipe-max-size, the max_pages_per_req should be changed considering it.
> It seems that the upper limit of this parameter does not have to be
> not more than it.
>
> I'm planning to limit max_pages_per_req up to 1024 pages and add the
> document to /Documentation/filesystems/fuse.txt, as follows.
>
> "the sysfs max_pages_per_req parameter can be changed from 32 to 1024.
> The default is 32 pages. Generally, the pipe-max-size is 1M (256 pages)
> and it is better to set it to not more than the pipe-max-size."
>
> This is just a plan and any comments are appreciated.
This looks reasonable to me, we should try our best to maximize the
upper ceiling to deal with various of kinds of demands.
Thanks for your work, Mitsuo, as a user of FUSE, I'd vote +1 for your
patch set.
Thanks,
Yuan
next prev parent reply other threads:[~2012-07-12 6:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-05 10:50 [RFC PATCH 0/5] fuse: make maximum read/write request size tunable Mitsuo Hayasaka
2012-07-05 10:50 ` [RFC PATCH 1/5] " Mitsuo Hayasaka
2012-07-05 10:50 ` [RFC PATCH 2/5] fuse: do not create cache for fuse request allocation Mitsuo Hayasaka
2012-07-05 10:51 ` [RFC PATCH 3/5] fuse: make default global limit minimum value Mitsuo Hayasaka
2012-07-05 10:51 ` [RFC PATCH 4/5] fuse: add a sysfs parameter to control maximum request size Mitsuo Hayasaka
2012-07-05 10:51 ` [RFC PATCH 5/5] fuse: add documentation of sysfs parameter to limit maximum fuse " Mitsuo Hayasaka
2012-07-06 12:54 ` Rob Landley
2012-07-12 13:13 ` HAYASAKA Mitsuo
2012-07-05 13:04 ` [RFC PATCH 0/5] fuse: make maximum read/write request size tunable Nikolaus Rath
2012-07-06 10:09 ` HAYASAKA Mitsuo
2012-07-06 5:53 ` Liu Yuan
2012-07-06 13:58 ` [fuse-devel] " Han-Wen Nienhuys
2012-07-12 5:58 ` HAYASAKA Mitsuo
2012-07-12 6:13 ` Liu Yuan [this message]
2012-07-12 10:13 ` Miklos Szeredi
2012-07-13 7:30 ` HAYASAKA Mitsuo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FFE6AF1.8010802@gmail.com \
--to=namei.unix@gmail.com \
--cc=fuse-devel@lists.sourceforge.net \
--cc=hanwen@xs4all.nl \
--cc=hanwenn@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mitsuo.hayasaka.hu@hitachi.com \
--cc=yrl.pp-manager.tt@hitachi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).