All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org, piaojun@huawei.com, stefanha@redhat.com,
	marcandre.lureau@redhat.com, eguan@linux.alibaba.com,
	vgoyal@redhat.com
Subject: Re: [PATCH 00/30] virtiofs daemon (base)
Date: Thu, 24 Oct 2019 17:19:21 +0100	[thread overview]
Message-ID: <20191024161921.GL2877@work-vm> (raw)
In-Reply-To: <20191024071352-mutt-send-email-mst@kernel.org>

* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Mon, Oct 21, 2019 at 11:58:02AM +0100, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Hi,
> >   This is the 1st set for the virtiofsd - a daemon
> > that implements the user space side of virtiofs.
> > 
> >   The kernel and qemu device parts recently went in,
> > so the daemon is the only thing missing to have a working
> > set.
> > 
> >   This set is the absolute minimal base set of patches;
> > it's not yet safe to use (from security or correctness);
> > 
> > I'll follow up with ~3 more series in the next few days
> > with:
> > 
> >     a) Security patches that add sandboxing and checking
> >        compared with normal fuse - that makes it safe.
> >     b) Performance improvements including threading
> >     c) Other fixes, including correctness.
> > 
> > but, this is a good start and gets things rolling.
> > 
> > The set pulls in a big chunk of the upstream libfuse library
> > (unmodified so that it's easy to check it really is upstream),
> > chops all the stuff out we don't need and then adds the
> > new transport we need.
> > 
> > For new files I've formatted the code according to qemu
> > standards; for files that are from upstream libfuse
> > I've kept with their standards for ease of future updating.
> 
> Thinking of future updates, have you given any thought to
> automating them? Something along the lines of
> update-linux-headers maybe?

The problem is we're changing the code in some of them;
libfuse changes slowly enough that rebasing on a new libfuse isn't too
bad; but once committed, just copying new versions in like update-linux-headers
does isn't going to work because we have to merge in our changes.
I expect to have to cherry-pick changes.  Libfuse has had 75 patches in
the last year; so it doesn't worry me too much.

Dave

> 
> > We can't just link with libfuse, since we have to make ABI incompatible
> > changes for the new transport.
> > 
> > Running this daemon is typically done with:
> > 
> >    ./virtiofsd -o vhost_user_socket=/path/socket -o source=/path/to/fs
> > 
> > connected to a qemu that's then started with:
> >    -chardev socket,id=char0,path=/path/socket -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs
> > 
> > and then in the guest mount with:
> >    mount -t virtiofs myfs /mnt
> > 
> > Our development branch is: https://gitlab.com/virtio-fs/qemu/tree/virtio-fs-dev
> > 
> > Dave
> > 
> > 
> > Dr. David Alan Gilbert (22):
> >   virtiofsd: Pull in upstream headers
> >   virtiofsd: Pull in kernel's fuse.h
> >   virtiofsd: Add auxiliary .c's
> >   virtiofsd: Add fuse_lowlevel.c
> >   virtiofsd: Add passthrough_ll
> >   virtiofsd: Trim down imported files
> >   virtiofsd: Fix fuse_daemonize ignored return values
> >   virtiofsd: Fix common header and define for QEMU builds
> >   virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c
> >   virtiofsd: Add options for virtio
> >   virtiofsd: Open vhost connection instead of mounting
> >   virtiofsd: Start wiring up vhost-user
> >   virtiofsd: Add main virtio loop
> >   virtiofsd: get/set features callbacks
> >   virtiofsd: Start queue threads
> >   virtiofsd: Poll kick_fd for queue
> >   virtiofsd: Start reading commands from queue
> >   virtiofsd: Send replies to messages
> >   virtiofsd: Keep track of replies
> >   virtiofsd: Add Makefile wiring for virtiofsd contrib
> >   virtiofsd: Fast path for virtio read
> >   virtiofs: Add maintainers entry
> > 
> > Stefan Hajnoczi (7):
> >   virtiofsd: remove mountpoint dummy argument
> >   virtiofsd: remove unused notify reply support
> >   virtiofsd: add -o source=PATH to help output
> >   virtiofsd: add --fd=FDNUM fd passing option
> >   virtiofsd: make -f (foreground) the default
> >   virtiofsd: add vhost-user.json file
> >   virtiofsd: add --print-capabilities option
> > 
> > Vivek Goyal (1):
> >   virtiofsd: Make fsync work even if only inode is passed in
> > 
> >  .gitignore                                  |    1 +
> >  MAINTAINERS                                 |    8 +
> >  Makefile                                    |    9 +
> >  Makefile.objs                               |    1 +
> >  contrib/virtiofsd/50-qemu-virtiofsd.json.in |    5 +
> >  contrib/virtiofsd/Makefile.objs             |   10 +
> >  contrib/virtiofsd/buffer.c                  |  318 +++
> >  contrib/virtiofsd/fuse.h                    | 1268 ++++++++++
> >  contrib/virtiofsd/fuse_common.h             |  823 +++++++
> >  contrib/virtiofsd/fuse_i.h                  |  131 ++
> >  contrib/virtiofsd/fuse_kernel.h             |  858 +++++++
> >  contrib/virtiofsd/fuse_log.c                |   40 +
> >  contrib/virtiofsd/fuse_log.h                |   82 +
> >  contrib/virtiofsd/fuse_loop_mt.c            |   54 +
> >  contrib/virtiofsd/fuse_lowlevel.c           | 2302 +++++++++++++++++++
> >  contrib/virtiofsd/fuse_lowlevel.h           | 2024 ++++++++++++++++
> >  contrib/virtiofsd/fuse_misc.h               |   59 +
> >  contrib/virtiofsd/fuse_opt.c                |  422 ++++
> >  contrib/virtiofsd/fuse_opt.h                |  271 +++
> >  contrib/virtiofsd/fuse_signals.c            |   90 +
> >  contrib/virtiofsd/fuse_virtio.c             |  717 ++++++
> >  contrib/virtiofsd/fuse_virtio.h             |   33 +
> >  contrib/virtiofsd/helper.c                  |  300 +++
> >  contrib/virtiofsd/passthrough_helpers.h     |   76 +
> >  contrib/virtiofsd/passthrough_ll.c          | 1341 +++++++++++
> >  docs/interop/vhost-user.json                |    4 +-
> >  26 files changed, 11246 insertions(+), 1 deletion(-)
> >  create mode 100644 contrib/virtiofsd/50-qemu-virtiofsd.json.in
> >  create mode 100644 contrib/virtiofsd/Makefile.objs
> >  create mode 100644 contrib/virtiofsd/buffer.c
> >  create mode 100644 contrib/virtiofsd/fuse.h
> >  create mode 100644 contrib/virtiofsd/fuse_common.h
> >  create mode 100644 contrib/virtiofsd/fuse_i.h
> >  create mode 100644 contrib/virtiofsd/fuse_kernel.h
> >  create mode 100644 contrib/virtiofsd/fuse_log.c
> >  create mode 100644 contrib/virtiofsd/fuse_log.h
> >  create mode 100644 contrib/virtiofsd/fuse_loop_mt.c
> >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.c
> >  create mode 100644 contrib/virtiofsd/fuse_lowlevel.h
> >  create mode 100644 contrib/virtiofsd/fuse_misc.h
> >  create mode 100644 contrib/virtiofsd/fuse_opt.c
> >  create mode 100644 contrib/virtiofsd/fuse_opt.h
> >  create mode 100644 contrib/virtiofsd/fuse_signals.c
> >  create mode 100644 contrib/virtiofsd/fuse_virtio.c
> >  create mode 100644 contrib/virtiofsd/fuse_virtio.h
> >  create mode 100644 contrib/virtiofsd/helper.c
> >  create mode 100644 contrib/virtiofsd/passthrough_helpers.h
> >  create mode 100644 contrib/virtiofsd/passthrough_ll.c
> > 
> > -- 
> > 2.23.0
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2019-10-24 16:48 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-21 10:58 [PATCH 00/30] virtiofs daemon (base) Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 01/30] virtiofsd: Pull in upstream headers Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 02/30] virtiofsd: Pull in kernel's fuse.h Dr. David Alan Gilbert (git)
2019-10-24 11:10   ` Michael S. Tsirkin
2019-10-24 14:28     ` Dr. David Alan Gilbert
2019-10-24 11:13   ` Michael S. Tsirkin
2019-10-24 15:49     ` Dr. David Alan Gilbert
2019-10-21 10:58 ` [PATCH 03/30] virtiofsd: Add auxiliary .c's Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 04/30] virtiofsd: Add fuse_lowlevel.c Dr. David Alan Gilbert (git)
2019-10-24 11:11   ` Michael S. Tsirkin
2019-10-24 14:31     ` Dr. David Alan Gilbert
2019-10-21 10:58 ` [PATCH 05/30] virtiofsd: Add passthrough_ll Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 06/30] virtiofsd: Trim down imported files Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 07/30] virtiofsd: remove mountpoint dummy argument Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 08/30] virtiofsd: remove unused notify reply support Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 09/30] virtiofsd: Fix fuse_daemonize ignored return values Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 10/30] virtiofsd: Fix common header and define for QEMU builds Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 11/30] virtiofsd: fuse: Make iov_length usable outside fuse_lowlevel.c Dr. David Alan Gilbert (git)
2019-10-21 14:47   ` Marc-André Lureau
2019-10-22 10:01     ` Dr. David Alan Gilbert
2019-10-21 10:58 ` [PATCH 12/30] virtiofsd: Make fsync work even if only inode is passed in Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 13/30] virtiofsd: Add options for virtio Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 14/30] virtiofsd: add -o source=PATH to help output Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 15/30] virtiofsd: Open vhost connection instead of mounting Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 16/30] virtiofsd: Start wiring up vhost-user Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 17/30] virtiofsd: Add main virtio loop Dr. David Alan Gilbert (git)
2019-10-21 14:51   ` Marc-André Lureau
2019-10-22 11:07     ` Dr. David Alan Gilbert
2019-11-14 14:13       ` Stefan Hajnoczi
2019-10-21 10:58 ` [PATCH 18/30] virtiofsd: get/set features callbacks Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 19/30] virtiofsd: Start queue threads Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 20/30] virtiofsd: Poll kick_fd for queue Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 21/30] virtiofsd: Start reading commands from queue Dr. David Alan Gilbert (git)
2019-10-21 14:57   ` Marc-André Lureau
2019-10-22 10:28     ` Dr. David Alan Gilbert
2019-10-21 10:58 ` [PATCH 22/30] virtiofsd: Send replies to messages Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 23/30] virtiofsd: Keep track of replies Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 24/30] virtiofsd: Add Makefile wiring for virtiofsd contrib Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 25/30] virtiofsd: Fast path for virtio read Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 26/30] virtiofsd: add --fd=FDNUM fd passing option Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 27/30] virtiofsd: make -f (foreground) the default Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 28/30] virtiofsd: add vhost-user.json file Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 29/30] virtiofsd: add --print-capabilities option Dr. David Alan Gilbert (git)
2019-10-21 10:58 ` [PATCH 30/30] virtiofs: Add maintainers entry Dr. David Alan Gilbert (git)
     [not found] ` <157166664425.24734.3489596262271351160@37313f22b938>
2019-10-21 14:33   ` [PATCH 00/30] virtiofs daemon (base) Dr. David Alan Gilbert
2019-10-24 10:59     ` Michael S. Tsirkin
2019-10-24 11:02       ` Dr. David Alan Gilbert
2019-10-24 11:07       ` Daniel P. Berrangé
2019-10-24 11:14         ` Dr. David Alan Gilbert
2019-10-24 11:19           ` Michael S. Tsirkin
2019-10-24 12:54             ` Dr. David Alan Gilbert
2019-10-24 11:25           ` Daniel P. Berrangé
2019-10-24 13:36             ` Dr. David Alan Gilbert
2019-10-24 11:14 ` Michael S. Tsirkin
2019-10-24 16:19   ` Dr. David Alan Gilbert [this message]
2019-10-27 13:11 ` Michael S. Tsirkin
2019-10-28 13:24   ` Dr. David Alan Gilbert
2019-10-29 22:50 ` Michael S. Tsirkin
2019-10-30 10:47   ` Dr. David Alan Gilbert
2019-10-31  0:34     ` Michael S. Tsirkin
2019-10-31 13:20       ` Dr. David Alan Gilbert

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=20191024161921.GL2877@work-vm \
    --to=dgilbert@redhat.com \
    --cc=eguan@linux.alibaba.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=piaojun@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vgoyal@redhat.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.