All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alessio Balsini <balsini@android.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: Amir Goldstein <amir73il@gmail.com>,
	Alessio Balsini <balsini@android.com>,
	Jann Horn <jannh@google.com>, Jens Axboe <axboe@kernel.dk>,
	Nikhilesh Reddy <reddyn@codeaurora.org>,
	Akilesh Kailash <akailash@google.com>,
	David Anderson <dvander@google.com>,
	Eric Yan <eric.yan@oneplus.com>,
	Martijn Coenen <maco@android.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Lawrence <paullawrence@google.com>,
	Stefano Duo <stefanoduo@google.com>,
	Zimuzo Ezeozue <zezeozue@google.com>,
	kernel-team <kernel-team@android.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	kernel list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6] fuse: Add support for passthrough read/write
Date: Fri, 11 Sep 2020 17:23:45 +0100	[thread overview]
Message-ID: <20200911162345.GA71562@google.com> (raw)
In-Reply-To: <CAJfpegs2LHv4xfb5KPzSRPSAVg3eZEvZKk46SjgwGcgq==qNzw@mail.gmail.com>

Thanks all for the comments.

I have a patchset ready that hopefully wraps together the extendability
suggested by Nikolaus, that I agree is a good idea.
The way I tried to make it more flexible is first of all transitioning to a
ioctl(), as suggested by both Jann and Miklos, and by using a data
structure with flexible array member.

Thanks Amir for the fuse2 pointer. I didn't notice that project before, but
I really enjoyed going through its code.
I'm curious if it's intended to deprecate the current fuse implementation
or is what the current fuse will converge to. I noticed that some good
ideas that were in fuse2 have been also added to fuse, so I tried to take
fuse2 as a reference for my passthrough ioctl().

Miklos, can you please give us a glimpse of what's the future of fuse2?

Thanks a lot again for the feedback, I'll send the new patch in a few
minutes.

Cheers,
Alessio


On Mon, Aug 24, 2020 at 02:48:01PM +0200, Miklos Szeredi wrote:
> On Wed, Aug 19, 2020 at 11:25 AM Amir Goldstein <amir73il@gmail.com> wrote:
> 
> > > What I have in mind is things like not coupling the setup of the
> > > passthrough fds to open(), but having a separate notification message for
> > > this (like what we use for invalidation of cache), and adding not just
> > > an "fd" field but also "offset" and "length" fields (which would
> > > currently be required to be both zero to get the "full file" semantics).
> > >
> >
> > You mean like this?
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/commit/?h=fuse2
> 
> Look specifically at fuse_file_map_iter():
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/tree/fs/fuse2/file.c?h=fuse2#n582
> 
> and fudev_map_ioctl():
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/tree/fs/fuse2/fudev.c?h=fuse2#n601
> 
> This avoids the security issue Jann mentioned as well as allowing
> arbitrary mapping of file ranges.  E.g. it could also  be used by a
> block based filesystem to map I/O directly into the block device.
> 
> What the implementation lacks is any kind of caching.  Since your
> usecase involves just one map extent per file, special casing that
> would be trivial.  We can revisit general caching later.
> 
> Thanks,
> Miklos

  reply	other threads:[~2020-09-11 16:23 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-12 16:14 [PATCH v6] fuse: Add support for passthrough read/write Alessio Balsini
2020-08-12 18:29 ` Jann Horn
2020-08-13 13:28   ` Alessio Balsini
2020-08-13 18:30     ` Jann Horn
2020-08-18 13:53       ` Alessio Balsini
2020-08-19  6:01         ` Nikolaus Rath
2020-08-19  9:24           ` Amir Goldstein
2020-08-24 12:48             ` Miklos Szeredi
2020-09-11 16:23               ` Alessio Balsini [this message]
2020-08-19 10:04         ` Jann Horn
2020-09-08 21:42           ` Alessio Balsini
2020-08-13 18:41   ` Jens Axboe
2020-08-12 22:06 ` kernel test robot

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=20200911162345.GA71562@google.com \
    --to=balsini@android.com \
    --cc=akailash@google.com \
    --cc=amir73il@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=dvander@google.com \
    --cc=eric.yan@oneplus.com \
    --cc=jannh@google.com \
    --cc=kernel-team@android.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maco@android.com \
    --cc=miklos@szeredi.hu \
    --cc=palmer@dabbelt.com \
    --cc=paullawrence@google.com \
    --cc=reddyn@codeaurora.org \
    --cc=stefanoduo@google.com \
    --cc=zezeozue@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.