All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yongji Xie <xieyongji@bytedance.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: "Miklos Szeredi" <miklos@szeredi.hu>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	张佳辰 <zhangjiachen.jaycee@bytedance.com>,
	linux-fsdevel@vger.kernel.org,
	virtualization <virtualization@lists.linux-foundation.org>
Subject: Re: [PATCH] fuse: allow skipping abort interface for virtiofs
Date: Wed, 8 Jun 2022 21:57:51 +0800	[thread overview]
Message-ID: <CACycT3sMe8EdBWxZhT0HTwVB7mGPk=eV3jG-8EkNK+W-Y_RAiw@mail.gmail.com> (raw)
In-Reply-To: <YqCZt7tyEH50ktKq@redhat.com>

On Wed, Jun 8, 2022 at 8:44 PM Vivek Goyal <vgoyal@redhat.com> wrote:
>
> On Wed, Jun 08, 2022 at 04:42:46PM +0800, Yongji Xie wrote:
> > On Wed, Jun 8, 2022 at 3:34 AM Vivek Goyal <vgoyal@redhat.com> wrote:
> > >
> > > On Tue, Jun 07, 2022 at 07:05:04PM +0800, Xie Yongji wrote:
> > > > The commit 15c8e72e88e0 ("fuse: allow skipping control
> > > > interface and forced unmount") tries to remove the control
> > > > interface for virtio-fs since it does not support aborting
> > > > requests which are being processed. But it doesn't work now.
> > >
> > > Aha.., so "no_control" basically has no effect? I was looking at
> > > the code and did not find anybody using "no_control" and I was
> > > wondering who is making use of "no_control" variable.
> > >
> > > I mounted virtiofs and noticed a directory named "40" showed up
> > > under /sys/fs/fuse/connections/. That must be belonging to
> > > virtiofs instance, I am assuming.
> > >
> >
> > I think so.
> >
> > > BTW, if there are multiple fuse connections, how will one figure
> > > out which directory belongs to which instance. Because without knowing
> > > that, one will be shooting in dark while trying to read/write any
> > > of the control files.
> > >
> >
> > We can use "stat $mountpoint" to get the device minor ID which is the
> > name of the corresponding control directory.
> >
> > > So I think a separate patch should be sent which just gets rid of
> > > "no_control" saying nobody uses. it.
> > >
> >
> > OK.
> >
> > > >
> > > > This commit fixes the bug, but only remove the abort interface
> > > > instead since other interfaces should be useful.
> > >
> > > Hmm.., so writing to "abort" file is bad as it ultimately does.
> > >
> > > fc->connected = 0;
> > >
> >
> > Another problem is that it might trigger UAF since
> > virtio_fs_request_complete() doesn't know the requests are aborted.
> >
> > > So getting rid of this file till we support aborting the pending
> > > requests properly, makes sense.
> > >
> > > I think this probably should be a separate patch which explains
> > > why adding "no_abort_control" is a good idea.
> > >
> >
> > OK.
>
> BTW, which particular knob you are finding useful in control filesystem
> for virtiofs. As you mentioned "abort" we will not implement. "waiting"
> might not have much significance as well because requests are handed
> over to virtiofs immidiately and if they can be sent to server (because
> virtqueue is full) these are queued internally and fuse layer will not
> have an idea.
>

Couldn't it be used to check the inflight I/O for virtiofs?

> That leaves us with "congestion_threshold" and "max_background".
> max_background seems to control how many background requests can be
> submitted at a time. That probably can be useful if server is overwhelemed
> and we want to slow down the client a bit.
>
> Not sure about congestion threshold.
>
> So have you found some knob useful for your use case?
>

Since it doesn't do harm to the system, I think it would be better to
just keep it as it is. Maybe some fuse users can make use of it.

Thanks,
Yongji

  reply	other threads:[~2022-06-08 13:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-07 11:05 [PATCH] fuse: allow skipping abort interface for virtiofs Xie Yongji
2022-06-07 19:33 ` Vivek Goyal
2022-06-07 19:33   ` Vivek Goyal
2022-06-08  8:42   ` Yongji Xie
2022-06-08 12:44     ` Vivek Goyal
2022-06-08 12:44       ` Vivek Goyal
2022-06-08 13:57       ` Yongji Xie [this message]
2022-06-09 13:31         ` Vivek Goyal
2022-06-09 13:31           ` Vivek Goyal
2022-06-09 14:19           ` Yongji Xie

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='CACycT3sMe8EdBWxZhT0HTwVB7mGPk=eV3jG-8EkNK+W-Y_RAiw@mail.gmail.com' \
    --to=xieyongji@bytedance.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=stefanha@redhat.com \
    --cc=vgoyal@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=zhangjiachen.jaycee@bytedance.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.