qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 00/30] virtiofs daemon (base)


From: Dr. David Alan Gilbert (git)
Subject: [PATCH 00/30] virtiofs daemon (base)
Date: Mon, 21 Oct 2019 11:58:02 +0100

From: "Dr. David Alan Gilbert" <address@hidden>

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.

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]