Skip to contentSkip to conversation

fixup! Add the vhost-user netdev backend to the command line

PATCH Applied Nikolay Nikolaev 3 participants 4 messages Jun 10, 2014 – Jun 11, 2014 Networking

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fixup! Add the vhost-user netdev backend to the command line

Fixes remarks:
- rever vhost-force to vhostforce (consistent with tap)
- removed has_unsupported member from VhostUserChardevProps
- removed double error reporting when parsing chardev options

---
 net/vhost-user.c |   18 ++++++------------
 qapi-schema.json |    4 ++--
 2 files changed, 8 insertions(+), 14 deletions(-)
net/vhost-user.c +6 -12
index 32b78fb..24e050c 100644
@@ -26,7 +26,6 @@ typedef struct VhostUserChardevProps {
     bool is_socket;
     bool is_unix;
     bool is_server;
-    bool has_unsupported;
 } VhostUserChardevProps;
 
 VHostNetState *vhost_user_get_vhost_net(NetClientState *nc)
@@ -172,7 +171,6 @@ static int net_vhost_chardev_opts(const char *name, const char *value,
         error_report("vhost-user does not support a chardev"
                      " with the following option:\n %s = %s",
                      name, value);
-        props->has_unsupported = true;
         return -1;
     }
     return 0;
@@ -190,7 +188,9 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op
 
     /* inspect chardev opts */
     memset(&props, 0, sizeof(props));
-    qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, false);
+    if (qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, true) != 0) {
+        return NULL;
+    }
 
     if (!props.is_socket || !props.is_unix) {
         error_report("chardev \"%s\" is not a unix socket",
@@ -198,12 +198,6 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op
         return NULL;
     }
 
-    if (props.has_unsupported) {
-        error_report("chardev \"%s\" has an unsupported option",
-                opts->chardev);
-        return NULL;
-    }
-
     qemu_chr_fe_claim_no_fail(chr);
 
     return chr;
@@ -253,9 +247,9 @@ int net_init_vhost_user(const NetClientOptions *opts, const char *name,
         return -1;
     }
 
-    /* vhost-force for non-MSIX */
-    if (vhost_user_opts->has_vhost_force) {
-        vhostforce = vhost_user_opts->vhost_force;
+    /* vhostforce for non-MSIX */
+    if (vhost_user_opts->has_vhostforce) {
+        vhostforce = vhost_user_opts->vhostforce;
     } else {
         vhostforce = false;
     }
qapi-schema.json +2 -2
index f062ce9..0837fc5 100644
@@ -3273,14 +3273,14 @@
 #
 # @chardev: name of a unix socket chardev
 #
-# @vhost-force: #optional vhost on for non-MSIX virtio guests (default: false).
+# @vhostforce: #optional vhost on for non-MSIX virtio guests (default: false).
 #
 # Since 2.1
 ##
 { 'type': 'NetdevVhostUserOptions',
   'data': {
     'chardev':        'str',
-    '*vhost-force':    'bool' } }
+    '*vhostforce':    'bool' } }
 
 ##
 # @NetClientOptions
Reviewed-by on v1 1/1
#1 lore raw
Quoted 2 lines · Nikolay Nikolaev

Fixes remarks:
- rever vhost-force to vhostforce (consistent with tap)

s/rever/change/

Quoted 8 lines

- removed has_unsupported member from VhostUserChardevProps
- removed double error reporting when parsing chardev options

---
 net/vhost-user.c |   18 ++++++------------
 qapi-schema.json |    4 ++--
 2 files changed, 8 insertions(+), 14 deletions(-)
Signature · 2 lines
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org
#2 lore raw
In reply to Nikolay Nikolaev
Quoted 6 lines · Nikolay Nikolaev

Fixes remarks:
- rever vhost-force to vhostforce (consistent with tap)
- removed has_unsupported member from VhostUserChardevProps
- removed double error reporting when parsing chardev options

Applied, thanks everyone.
Pls take a look at the vhost branch and confirm everything's in order before I merge this upstream.

Note: you don't need 1/1 if there's a single patch.

Quoted 83 lines
---
 net/vhost-user.c |   18 ++++++------------
 qapi-schema.json |    4 ++--
 2 files changed, 8 insertions(+), 14 deletions(-)
net/vhost-user.c +6 -12
index 32b78fb..24e050c 100644
@@ -26,7 +26,6 @@ typedef struct VhostUserChardevProps {
     bool is_socket;
     bool is_unix;
     bool is_server;
-    bool has_unsupported;
 } VhostUserChardevProps;
 
 VHostNetState *vhost_user_get_vhost_net(NetClientState *nc)
@@ -172,7 +171,6 @@ static int net_vhost_chardev_opts(const char *name, const char *value,
         error_report("vhost-user does not support a chardev"
                      " with the following option:\n %s = %s",
                      name, value);
-        props->has_unsupported = true;
         return -1;
     }
     return 0;
@@ -190,7 +188,9 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op
 
     /* inspect chardev opts */
     memset(&props, 0, sizeof(props));
-    qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, false);
+    if (qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, true) != 0) {
+        return NULL;
+    }
 
     if (!props.is_socket || !props.is_unix) {
         error_report("chardev \"%s\" is not a unix socket",
@@ -198,12 +198,6 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op
         return NULL;
     }
 
-    if (props.has_unsupported) {
-        error_report("chardev \"%s\" has an unsupported option",
-                opts->chardev);
-        return NULL;
-    }
-
     qemu_chr_fe_claim_no_fail(chr);
 
     return chr;
@@ -253,9 +247,9 @@ int net_init_vhost_user(const NetClientOptions *opts, const char *name,
         return -1;
     }
 
-    /* vhost-force for non-MSIX */
-    if (vhost_user_opts->has_vhost_force) {
-        vhostforce = vhost_user_opts->vhost_force;
+    /* vhostforce for non-MSIX */
+    if (vhost_user_opts->has_vhostforce) {
+        vhostforce = vhost_user_opts->vhostforce;
     } else {
         vhostforce = false;
     }
qapi-schema.json +2 -2
index f062ce9..0837fc5 100644
@@ -3273,14 +3273,14 @@
 #
 # @chardev: name of a unix socket chardev
 #
-# @vhost-force: #optional vhost on for non-MSIX virtio guests (default: false).
+# @vhostforce: #optional vhost on for non-MSIX virtio guests (default: false).
 #
 # Since 2.1
 ##
 { 'type': 'NetdevVhostUserOptions',
   'data': {
     'chardev':        'str',
-    '*vhost-force':    'bool' } }
+    '*vhostforce':    'bool' } }
 
 ##
 # @NetClientOptions
#3 lore raw

Hello,

Quoted 6 lines · Michael S. Tsirkin
Quoted 5 lines · Nikolay Nikolaev

Fixes remarks:
- rever vhost-force to vhostforce (consistent with tap)
- removed has_unsupported member from VhostUserChardevProps
- removed double error reporting when parsing chardev options

Quoted 6 lines
Quoted 1 line

Applied, thanks everyone.
Pls take a look at the vhost branch and confirm everything's in order before I merge this upstream.

I have checked out git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
branch 'vhost' and rebased on top of branch 'numa' in order to test it.
However I found out that instead of "-object memory-file" I have to use "-object memory-backend-file". If this is the syntax that is going to stay then I'll have to send fixups to 12, 15 and 18. Please confirm.

regards,
Nikolay Nikolaev

Quoted 91 lines

Note: you don't need 1/1 if there's a single patch.

Quoted 73 lines
---
 net/vhost-user.c |   18 ++++++------------
 qapi-schema.json |    4 ++--
 2 files changed, 8 insertions(+), 14 deletions(-)
net/vhost-user.c +6 -12
index 32b78fb..24e050c 100644
@@ -26,7 +26,6 @@ typedef struct VhostUserChardevProps {
     bool is_socket;
     bool is_unix;
     bool is_server;
-    bool has_unsupported;
 } VhostUserChardevProps;
 
 VHostNetState *vhost_user_get_vhost_net(NetClientState *nc)
@@ -172,7 +171,6 @@ static int net_vhost_chardev_opts(const char *name, const char *value,
         error_report("vhost-user does not support a chardev"
                      " with the following option:\n %s = %s",
                      name, value);
-        props->has_unsupported = true;
         return -1;
     }
     return 0;
@@ -190,7 +188,9 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op
 
     /* inspect chardev opts */
     memset(&props, 0, sizeof(props));
-    qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, false);
+    if (qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, true) != 0) {
+        return NULL;
+    }
 
     if (!props.is_socket || !props.is_unix) {
         error_report("chardev \"%s\" is not a unix socket",
@@ -198,12 +198,6 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op
         return NULL;
     }
 
-    if (props.has_unsupported) {
-        error_report("chardev \"%s\" has an unsupported option",
-                opts->chardev);
-        return NULL;
-    }
-
     qemu_chr_fe_claim_no_fail(chr);
 
     return chr;
@@ -253,9 +247,9 @@ int net_init_vhost_user(const NetClientOptions *opts, const char *name,
         return -1;
     }
 
-    /* vhost-force for non-MSIX */
-    if (vhost_user_opts->has_vhost_force) {
-        vhostforce = vhost_user_opts->vhost_force;
+    /* vhostforce for non-MSIX */
+    if (vhost_user_opts->has_vhostforce) {
+        vhostforce = vhost_user_opts->vhostforce;
     } else {
         vhostforce = false;
     }
qapi-schema.json +1 -1
index f062ce9..0837fc5 100644
@@ -3273,14 +3273,14 @@
 #
 # @chardev: name of a unix socket chardev
 #
-# @vhost-force: #optional vhost on for non-MSIX virtio guests (default: false).
+# @vhostforce: #optional vhost on for non-MSIX virtio guests (default: false).
 #

qapi-schema.json line 3286

Quoted 10 lines
qapi-schema.json +1 -1
 # Since 2.1
 ##
 { 'type': 'NetdevVhostUserOptions',
   'data': {
     'chardev':        'str',
-    '*vhost-force':    'bool' } }
+    '*vhostforce':    'bool' } }
 
 ##
 # @NetClientOptions

--
You received this message because you are subscribed to the Google Groups "Snabb Switch development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send an email to [email protected].
Visit this group at http://groups.google.com/group/snabb-devel.