linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alessio Balsini <balsini@android.com>
To: Rokudo Yan <wu-yan@tcl.com>
Cc: balsini@android.com, akailash@google.com, amir73il@gmail.com,
	axboe@kernel.dk, bergwolf@gmail.com, duostefano93@gmail.com,
	dvander@google.com, fuse-devel@lists.sourceforge.net,
	gscrivan@redhat.com, jannh@google.com, kernel-team@android.com,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	maco@android.com, miklos@szeredi.hu, palmer@dabbelt.com,
	paullawrence@google.com, trapexit@spawn.link,
	zezeozue@google.com
Subject: Re: [PATCH RESEND V11 0/7] fuse: Add support for passthrough read/write
Date: Fri, 22 Jan 2021 11:06:25 +0000	[thread overview]
Message-ID: <YAqxsWpH54moi+t6@google.com> (raw)
In-Reply-To: <YAbRz83CV2TyU3wT@google.com>

On Tue, Jan 19, 2021 at 12:34:23PM +0000, Alessio Balsini wrote:
> On Tue, Jan 19, 2021 at 07:06:54PM +0800, Rokudo Yan wrote:
> > on Mon, Jan 18, 2021 at 5:27 PM Alessio Balsini <balsini@android.com> wrote:
> > >
> > > This is the 11th version of the series, rebased on top of v5.11-rc4.
> > > Please find the changelog at the bottom of this cover letter.
> > > 
> > > Add support for file system passthrough read/write of files when enabled
> > > in userspace through the option FUSE_PASSTHROUGH.
> > [...]
> > 
> > 
> > Hi Allesio,
> > 
> > Could you please add support for passthrough mmap too ?
> > If the fuse file opened with passthrough actived, and then map (shared) to (another) process
> > address space using mmap interface. As access the file with mmap will pass the vfs cache of fuse,
> > but access the file with read/write will bypass the vfs cache of fuse, this may cause inconsistency.
> > eg. the reader read the fuse file with mmap() and the writer modify the file with write(), the reader
> > may not see the modification immediately since the writer bypass the vfs cache of fuse.
> > Actually we have already meet an issue caused by the inconsistency after applying fuse passthrough
> > scheme to our product.
> > 
> > Thanks,
> > yanwu.
> 
> Hi yanwu,
> 
> Thank you for your interest in this change.
> 
> FUSE passthrough for mmap is an extension that is already in my TODO
> list, together with passthrough for directories.
> For now I would prefer to keep this series minimal to make the review
> process leaner and simpler.
> I will start working on extending this series with new features and
> addressing more corner cases as soon as these changes get merged, what
> do you think?
> 
> Thanks,
> Alessio

Hi yanwu,

Sorry if I overlooked this issue. I added memory-mapping to my tests and
could reproduce/verify this wrong behavior you mentioned.

I created this WIP (history may change) branch that has the missing mmap
implementation:

  https://github.com/balsini/linux/commits/fuse-passthrough-v12-develop-v5.11-rc4

I did some mmap testing in the last days with this extra mmap
implementation and couldn't find any issues, everything seems to be
working as expected with the extra mmap patch. Can you please confirm
this is fixed on your end too?
I'm also going to revert in this branch the stacking policy changes to
how they were in V10 as suggested by Amir if there are no concerns with
that.
I'm waiting for some extra tests to complete and, if no issue is
detected, I'll post the V12 series super soon.

Thanks,
Alessio


  reply	other threads:[~2021-01-22 11:12 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-18 19:27 [PATCH RESEND V11 0/7] fuse: Add support for passthrough read/write Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 1/7] fs: Generic function to convert iocb to rw flags Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 2/7] fuse: 32-bit user space ioctl compat for fuse device Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 3/7] fuse: Definitions and ioctl for passthrough Alessio Balsini
2021-01-19  6:33   ` Amir Goldstein
2021-01-19 11:51     ` Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 4/7] fuse: Passthrough initialization and release Alessio Balsini
2021-01-19 12:06   ` Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 5/7] fuse: Introduce synchronous read and write for passthrough Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 6/7] fuse: Handle asynchronous read and write in passthrough Alessio Balsini
2021-01-18 19:27 ` [PATCH RESEND V11 7/7] fuse: Use daemon creds in passthrough mode Alessio Balsini
2021-01-19 11:06 ` [PATCH RESEND V11 0/7] fuse: Add support for passthrough read/write Rokudo Yan
2021-01-19 12:34   ` Alessio Balsini
2021-01-22 11:06     ` Alessio Balsini [this message]
2021-01-25  2:39       ` wu-yan

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=YAqxsWpH54moi+t6@google.com \
    --to=balsini@android.com \
    --cc=akailash@google.com \
    --cc=amir73il@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=bergwolf@gmail.com \
    --cc=duostefano93@gmail.com \
    --cc=dvander@google.com \
    --cc=fuse-devel@lists.sourceforge.net \
    --cc=gscrivan@redhat.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=trapexit@spawn.link \
    --cc=wu-yan@tcl.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 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).