diff mbox series

[014/104] virtiofsd: Add options for virtio

Message ID 20191212163904.159893-15-dgilbert@redhat.com
State New
Headers show
Series virtiofs daemon [all] | expand

Commit Message

Dr. David Alan Gilbert Dec. 12, 2019, 4:37 p.m. UTC
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Add options to specify parameters for virtio-fs paths, i.e.

   ./virtiofsd -o vhost_user_socket=/tmp/vhostqemu

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 tools/virtiofsd/fuse_i.h        |  1 +
 tools/virtiofsd/fuse_lowlevel.c | 17 ++++++++++++-----
 tools/virtiofsd/helper.c        | 22 +++++++++++-----------
 3 files changed, 24 insertions(+), 16 deletions(-)

Comments

Daniel P. Berrangé Jan. 3, 2020, 3:18 p.m. UTC | #1
On Thu, Dec 12, 2019 at 04:37:34PM +0000, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Add options to specify parameters for virtio-fs paths, i.e.
> 
>    ./virtiofsd -o vhost_user_socket=/tmp/vhostqemu
> 
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
>  tools/virtiofsd/fuse_i.h        |  1 +
>  tools/virtiofsd/fuse_lowlevel.c | 17 ++++++++++++-----
>  tools/virtiofsd/helper.c        | 22 +++++++++++-----------
>  3 files changed, 24 insertions(+), 16 deletions(-)
> 
> diff --git a/tools/virtiofsd/fuse_i.h b/tools/virtiofsd/fuse_i.h
> index 0b5acc8765..f58be71e4b 100644
> --- a/tools/virtiofsd/fuse_i.h
> +++ b/tools/virtiofsd/fuse_i.h
> @@ -63,6 +63,7 @@ struct fuse_session {
>      struct fuse_notify_req notify_list;
>      size_t bufsize;
>      int error;
> +    char *vu_socket_path;
>  };
>  
>  struct fuse_chan {
> diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c
> index 167701b453..da708161e1 100644
> --- a/tools/virtiofsd/fuse_lowlevel.c
> +++ b/tools/virtiofsd/fuse_lowlevel.c
> @@ -2118,8 +2118,12 @@ reply_err:
>      }
>  
>  static const struct fuse_opt fuse_ll_opts[] = {
> -    LL_OPTION("debug", debug, 1), LL_OPTION("-d", debug, 1),
> -    LL_OPTION("--debug", debug, 1), LL_OPTION("allow_root", deny_others, 1),
> +    LL_OPTION("debug", debug, 1),
> +    LL_OPTION("-d", debug, 1),
> +    LL_OPTION("--debug", debug, 1),

Pre-existing, but I'm not convinced we really need 3 different
ways to enable debugging - I would think -d / --debug is sufficient,
without needing "-o debug".


> +    LL_OPTION("allow_root", deny_others, 1),
> +    LL_OPTION("--socket-path=%s", vu_socket_path, 0),
> +    LL_OPTION("vhost_user_socket=%s", vu_socket_path, 0),

Similarly here I'm not convinced we need to add both
"--socket-path PATH" and "-o vhost_user_socket=PATH"


IIRC, we need --socket-path for compliance with QEMU's
standard execution model for vhost helpers.

>      FUSE_OPT_END
>  };
>  
> @@ -2135,9 +2139,12 @@ void fuse_lowlevel_help(void)
>       * These are not all options, but the ones that are
>       * potentially of interest to an end-user
>       */
> -    printf("    -o allow_other         allow access by all users\n"
> -           "    -o allow_root          allow access by root\n"
> -           "    -o auto_unmount        auto unmount on process termination\n");
> +    printf(
> +        "    -o allow_other             allow access by all users\n"
> +        "    -o allow_root              allow access by root\n"
> +        "    --socket-path=PATH         path for the vhost-user socket\n"
> +        "    -o vhost_user_socket=PATH  path for the vhost-user socket\n"
> +        "    -o auto_unmount            auto unmount on process termination\n");
>  }
>  
>  void fuse_session_destroy(struct fuse_session *se)
> diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
> index 8afccfc15e..48e38a7963 100644
> --- a/tools/virtiofsd/helper.c
> +++ b/tools/virtiofsd/helper.c
> @@ -128,17 +128,17 @@ static const struct fuse_opt conn_info_opt_spec[] = {
>  
>  void fuse_cmdline_help(void)
>  {
> -    printf(
> -        "    -h   --help            print help\n"
> -        "    -V   --version         print version\n"
> -        "    -d   -o debug          enable debug output (implies -f)\n"
> -        "    -f                     foreground operation\n"
> -        "    -s                     disable multi-threaded operation\n"
> -        "    -o clone_fd            use separate fuse device fd for each "
> -        "thread\n"
> -        "                           (may improve performance)\n"
> -        "    -o max_idle_threads    the maximum number of idle worker threads\n"
> -        "                           allowed (default: 10)\n");
> +    printf("    -h   --help                print help\n"
> +           "    -V   --version             print version\n"
> +           "    -d   -o debug              enable debug output (implies -f)\n"
> +           "    -f                         foreground operation\n"
> +           "    -s                         disable multi-threaded operation\n"
> +           "    -o clone_fd                use separate fuse device fd for "
> +           "each thread\n"
> +           "                               (may improve performance)\n"
> +           "    -o max_idle_threads        the maximum number of idle worker "
> +           "threads\n"
> +           "                               allowed (default: 10)\n");
>  }
>  
>  static int fuse_helper_opt_proc(void *data, const char *arg, int key,
> -- 
> 2.23.0
> 
> 

Regards,
Daniel
Dr. David Alan Gilbert Jan. 10, 2020, 4:01 p.m. UTC | #2
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> On Thu, Dec 12, 2019 at 04:37:34PM +0000, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Add options to specify parameters for virtio-fs paths, i.e.
> > 
> >    ./virtiofsd -o vhost_user_socket=/tmp/vhostqemu
> > 
> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > ---
> >  tools/virtiofsd/fuse_i.h        |  1 +
> >  tools/virtiofsd/fuse_lowlevel.c | 17 ++++++++++++-----
> >  tools/virtiofsd/helper.c        | 22 +++++++++++-----------
> >  3 files changed, 24 insertions(+), 16 deletions(-)
> > 
> > diff --git a/tools/virtiofsd/fuse_i.h b/tools/virtiofsd/fuse_i.h
> > index 0b5acc8765..f58be71e4b 100644
> > --- a/tools/virtiofsd/fuse_i.h
> > +++ b/tools/virtiofsd/fuse_i.h
> > @@ -63,6 +63,7 @@ struct fuse_session {
> >      struct fuse_notify_req notify_list;
> >      size_t bufsize;
> >      int error;
> > +    char *vu_socket_path;
> >  };
> >  
> >  struct fuse_chan {
> > diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c
> > index 167701b453..da708161e1 100644
> > --- a/tools/virtiofsd/fuse_lowlevel.c
> > +++ b/tools/virtiofsd/fuse_lowlevel.c
> > @@ -2118,8 +2118,12 @@ reply_err:
> >      }
> >  
> >  static const struct fuse_opt fuse_ll_opts[] = {
> > -    LL_OPTION("debug", debug, 1), LL_OPTION("-d", debug, 1),
> > -    LL_OPTION("--debug", debug, 1), LL_OPTION("allow_root", deny_others, 1),
> > +    LL_OPTION("debug", debug, 1),
> > +    LL_OPTION("-d", debug, 1),
> > +    LL_OPTION("--debug", debug, 1),
> 
> Pre-existing, but I'm not convinced we really need 3 different
> ways to enable debugging - I would think -d / --debug is sufficient,
> without needing "-o debug".

Given it's existing, I'll leave that.

> > +    LL_OPTION("allow_root", deny_others, 1),
> > +    LL_OPTION("--socket-path=%s", vu_socket_path, 0),
> > +    LL_OPTION("vhost_user_socket=%s", vu_socket_path, 0),
> 
> Similarly here I'm not convinced we need to add both
> "--socket-path PATH" and "-o vhost_user_socket=PATH"
> 
> 
> IIRC, we need --socket-path for compliance with QEMU's
> standard execution model for vhost helpers.

OK, deleted -o vhost_user_socket   - it was there because
our existing kata glue and test setups were using it.


Dave

> >      FUSE_OPT_END
> >  };
> >  
> > @@ -2135,9 +2139,12 @@ void fuse_lowlevel_help(void)
> >       * These are not all options, but the ones that are
> >       * potentially of interest to an end-user
> >       */
> > -    printf("    -o allow_other         allow access by all users\n"
> > -           "    -o allow_root          allow access by root\n"
> > -           "    -o auto_unmount        auto unmount on process termination\n");
> > +    printf(
> > +        "    -o allow_other             allow access by all users\n"
> > +        "    -o allow_root              allow access by root\n"
> > +        "    --socket-path=PATH         path for the vhost-user socket\n"
> > +        "    -o vhost_user_socket=PATH  path for the vhost-user socket\n"
> > +        "    -o auto_unmount            auto unmount on process termination\n");
> >  }
> >  
> >  void fuse_session_destroy(struct fuse_session *se)
> > diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
> > index 8afccfc15e..48e38a7963 100644
> > --- a/tools/virtiofsd/helper.c
> > +++ b/tools/virtiofsd/helper.c
> > @@ -128,17 +128,17 @@ static const struct fuse_opt conn_info_opt_spec[] = {
> >  
> >  void fuse_cmdline_help(void)
> >  {
> > -    printf(
> > -        "    -h   --help            print help\n"
> > -        "    -V   --version         print version\n"
> > -        "    -d   -o debug          enable debug output (implies -f)\n"
> > -        "    -f                     foreground operation\n"
> > -        "    -s                     disable multi-threaded operation\n"
> > -        "    -o clone_fd            use separate fuse device fd for each "
> > -        "thread\n"
> > -        "                           (may improve performance)\n"
> > -        "    -o max_idle_threads    the maximum number of idle worker threads\n"
> > -        "                           allowed (default: 10)\n");
> > +    printf("    -h   --help                print help\n"
> > +           "    -V   --version             print version\n"
> > +           "    -d   -o debug              enable debug output (implies -f)\n"
> > +           "    -f                         foreground operation\n"
> > +           "    -s                         disable multi-threaded operation\n"
> > +           "    -o clone_fd                use separate fuse device fd for "
> > +           "each thread\n"
> > +           "                               (may improve performance)\n"
> > +           "    -o max_idle_threads        the maximum number of idle worker "
> > +           "threads\n"
> > +           "                               allowed (default: 10)\n");
> >  }
> >  
> >  static int fuse_helper_opt_proc(void *data, const char *arg, int key,
> > -- 
> > 2.23.0
> > 
> > 
> 
> Regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff mbox series

Patch

diff --git a/tools/virtiofsd/fuse_i.h b/tools/virtiofsd/fuse_i.h
index 0b5acc8765..f58be71e4b 100644
--- a/tools/virtiofsd/fuse_i.h
+++ b/tools/virtiofsd/fuse_i.h
@@ -63,6 +63,7 @@  struct fuse_session {
     struct fuse_notify_req notify_list;
     size_t bufsize;
     int error;
+    char *vu_socket_path;
 };
 
 struct fuse_chan {
diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c
index 167701b453..da708161e1 100644
--- a/tools/virtiofsd/fuse_lowlevel.c
+++ b/tools/virtiofsd/fuse_lowlevel.c
@@ -2118,8 +2118,12 @@  reply_err:
     }
 
 static const struct fuse_opt fuse_ll_opts[] = {
-    LL_OPTION("debug", debug, 1), LL_OPTION("-d", debug, 1),
-    LL_OPTION("--debug", debug, 1), LL_OPTION("allow_root", deny_others, 1),
+    LL_OPTION("debug", debug, 1),
+    LL_OPTION("-d", debug, 1),
+    LL_OPTION("--debug", debug, 1),
+    LL_OPTION("allow_root", deny_others, 1),
+    LL_OPTION("--socket-path=%s", vu_socket_path, 0),
+    LL_OPTION("vhost_user_socket=%s", vu_socket_path, 0),
     FUSE_OPT_END
 };
 
@@ -2135,9 +2139,12 @@  void fuse_lowlevel_help(void)
      * These are not all options, but the ones that are
      * potentially of interest to an end-user
      */
-    printf("    -o allow_other         allow access by all users\n"
-           "    -o allow_root          allow access by root\n"
-           "    -o auto_unmount        auto unmount on process termination\n");
+    printf(
+        "    -o allow_other             allow access by all users\n"
+        "    -o allow_root              allow access by root\n"
+        "    --socket-path=PATH         path for the vhost-user socket\n"
+        "    -o vhost_user_socket=PATH  path for the vhost-user socket\n"
+        "    -o auto_unmount            auto unmount on process termination\n");
 }
 
 void fuse_session_destroy(struct fuse_session *se)
diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
index 8afccfc15e..48e38a7963 100644
--- a/tools/virtiofsd/helper.c
+++ b/tools/virtiofsd/helper.c
@@ -128,17 +128,17 @@  static const struct fuse_opt conn_info_opt_spec[] = {
 
 void fuse_cmdline_help(void)
 {
-    printf(
-        "    -h   --help            print help\n"
-        "    -V   --version         print version\n"
-        "    -d   -o debug          enable debug output (implies -f)\n"
-        "    -f                     foreground operation\n"
-        "    -s                     disable multi-threaded operation\n"
-        "    -o clone_fd            use separate fuse device fd for each "
-        "thread\n"
-        "                           (may improve performance)\n"
-        "    -o max_idle_threads    the maximum number of idle worker threads\n"
-        "                           allowed (default: 10)\n");
+    printf("    -h   --help                print help\n"
+           "    -V   --version             print version\n"
+           "    -d   -o debug              enable debug output (implies -f)\n"
+           "    -f                         foreground operation\n"
+           "    -s                         disable multi-threaded operation\n"
+           "    -o clone_fd                use separate fuse device fd for "
+           "each thread\n"
+           "                               (may improve performance)\n"
+           "    -o max_idle_threads        the maximum number of idle worker "
+           "threads\n"
+           "                               allowed (default: 10)\n");
 }
 
 static int fuse_helper_opt_proc(void *data, const char *arg, int key,