From: Miklos Szeredi <miklos@szeredi.hu>
To: ezemtsov@google.com
Cc: linux-fsdevel@vger.kernel.org, "Theodore Ts'o" <tytso@mit.edu>
Subject: Re: [PATCH 1/6] incfs: Add first files of incrementalfs
Date: Thu, 2 May 2019 15:06:46 -0400 [thread overview]
Message-ID: <CAJfpegtqPYfE_s711+FUj5SCbQzGjUPpwtxyQ=7bdgNzu0NUaQ@mail.gmail.com> (raw)
In-Reply-To: <20190502040331.81196-2-ezemtsov@google.com>
On Thu, May 2, 2019 at 12:03 AM <ezemtsov@google.com> wrote:
> +Design alternatives
> +===================
> +
> +Why isn't incremental-fs implemented via FUSE?
> +----------------------------------------------
> +TLDR: FUSE-based filesystems add 20-80% of performance overhead for target
> +scenarios, and increase power use on mobile beyond acceptable limit
> +for widespread deployment. A custom kernel filesystem is the way to overcome
> +these limitations.
he 80% performance overhead sounds bad. As fuse maintainer I'd
really be interested in finding out the causes.
> +
> +From the theoretical side of things, FUSE filesystem adds some overhead to
> +each filesystem operation that’s not handled by OS page cache:
> +
> + * When an IO request arrives to FUSE driver (D), it puts it into a queue
> + that runs on a separate kernel thread
The queue is run on a *user* thread, there's no intermediate kernel
thread involved.
> + * Then another separate user-mode handler process (H) has to run,
> + potentially after a context switch, to read the request from the queue.
Yes. How is it different from the data loader doing read(2) on .cmd?
> + Reading the request adds a kernel-user mode transition to the handling.
> + * (H) sends the IO request to kernel to handle it on some underlying storage
> + filesystem. This adds a user-kernel and kernel-user mode transition
> + pair to the handling.
> + * (H) then responds to the FUSE request via a write(2) call.
> + Writing the response is another user-kernel mode transition.
> + * (D) needs to read the response from (H) when its kernel thread runs
> + and forward it to the user
Again, you've just described exactly the same thing for data loader
and .cmd. Why is the fuse case different?
Thanks,
Miklos
next prev parent reply other threads:[~2019-05-02 19:06 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-02 4:03 Initial patches for Incremental FS ezemtsov
2019-05-02 4:03 ` [PATCH 1/6] incfs: Add first files of incrementalfs ezemtsov
2019-05-02 19:06 ` Miklos Szeredi [this message]
2019-05-02 20:41 ` Randy Dunlap
2019-05-07 15:57 ` Jann Horn
2019-05-07 17:13 ` Greg KH
2019-05-07 17:18 ` Greg KH
2019-05-02 4:03 ` [PATCH 2/6] incfs: Backing file format ezemtsov
2019-05-02 4:03 ` [PATCH 3/6] incfs: Management of in-memory FS data structures ezemtsov
2019-05-02 4:03 ` [PATCH 4/6] incfs: Integration with VFS layer ezemtsov
2019-05-02 4:03 ` [PATCH 6/6] incfs: Integration tests for incremental-fs ezemtsov
2019-05-02 11:19 ` Initial patches for Incremental FS Amir Goldstein
2019-05-02 13:10 ` Theodore Ts'o
2019-05-02 13:26 ` Al Viro
2019-05-03 4:23 ` Eugene Zemtsov
2019-05-03 5:19 ` Amir Goldstein
2019-05-08 20:09 ` Eugene Zemtsov
2019-05-09 8:15 ` Amir Goldstein
[not found] ` <CAK8JDrEQnXTcCtAPkb+S4r4hORiKh_yX=0A0A=LYSVKUo_n4OA@mail.gmail.com>
2019-05-21 1:32 ` Yurii Zubrytskyi
2019-05-22 8:32 ` Miklos Szeredi
2019-05-22 17:25 ` Yurii Zubrytskyi
2019-05-23 4:25 ` Miklos Szeredi
2019-05-29 21:06 ` Yurii Zubrytskyi
2019-05-30 9:22 ` Miklos Szeredi
2019-05-30 22:45 ` Yurii Zubrytskyi
2019-05-31 9:02 ` Miklos Szeredi
2019-05-22 10:54 ` Amir Goldstein
2019-05-03 7:23 ` Richard Weinberger
2019-05-03 10:22 ` Miklos Szeredi
2019-05-02 13:46 ` Amir Goldstein
2019-05-02 18:16 ` Richard Weinberger
2019-05-02 18:33 ` Richard Weinberger
2019-05-02 13:47 ` J. R. Okajima
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='CAJfpegtqPYfE_s711+FUj5SCbQzGjUPpwtxyQ=7bdgNzu0NUaQ@mail.gmail.com' \
--to=miklos@szeredi.hu \
--cc=ezemtsov@google.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@mit.edu \
/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).