qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] vhost-user: multiqueue support


From: Olivier MATZ
Subject: Re: [Qemu-devel] [PATCH] vhost-user: multiqueue support
Date: Mon, 08 Dec 2014 10:04:37 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.5.0

Hi Nikolay,

On 12/06/2014 05:52 PM, Nikolay Nikolaev wrote:
> Vhost-user will implement the multiqueueu support in a similar way to what
> vhost already has - a separate thread for each queue.
> 
> To enable multiquue funcionality - a new command line parameter
> "queues" is introduced for the vhost-user netdev.
> 
> Signed-off-by: Nikolay Nikolaev <address@hidden>
> ---
>  docs/specs/vhost-user.txt |    7 +++++++
>  hw/virtio/vhost-user.c    |    6 +++++-
>  net/vhost-user.c          |   35 +++++++++++++++++++++++------------
>  qapi-schema.json          |    5 ++++-
>  qemu-options.hx           |    5 +++--
>  5 files changed, 42 insertions(+), 16 deletions(-)
> [...]
> --- a/net/vhost-user.c
> +++ b/net/vhost-user.c
> @@ -134,25 +134,27 @@ static void net_vhost_user_event(void *opaque, int 
> event)
>  
>  static int net_vhost_user_init(NetClientState *peer, const char *device,
>                                 const char *name, CharDriverState *chr,
> -                               bool vhostforce)
> +                               bool vhostforce, uint32_t queues)
>  {
>      NetClientState *nc;
>      VhostUserState *s;
> +    int i;
>  
> -    nc = qemu_new_net_client(&net_vhost_user_info, peer, device, name);
> +    for (i = 0; i < queues; i++) {
> +        nc = qemu_new_net_client(&net_vhost_user_info, peer, device, name);
>  
> -    snprintf(nc->info_str, sizeof(nc->info_str), "vhost-user to %s",
> -             chr->label);
> +        snprintf(nc->info_str, sizeof(nc->info_str), "vhost-user%d to %s",
> +                 i, chr->label);
>  

Now that there several vhost-user are pointing to the same unix socket,
it could make sense to display "nc->info_str" instead of "s->chr->label"
in net_vhost_user_event(). Something like that:

--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -122,36 +122,39 @@ static void net_vhost_user_event(void *opaque, int
event)
      case CHR_EVENT_OPENED:
          vhost_user_start(s);
          net_vhost_link_down(s, false);
-        error_report("chardev \"%s\" went up\n", s->chr->label);
+        error_report("chardev \"%s\" went up\n", s->nc.info_str);
          break;
      case CHR_EVENT_CLOSED:
          net_vhost_link_down(s, true);
          vhost_user_stop(s);
-        error_report("chardev \"%s\" went down\n", s->chr->label);
+        error_report("chardev \"%s\" went down\n", s->nc.info_str);
          break;
      }
  }


Also, another comment: if I understand well, the messages like
VHOST_USER_SET_OWNER, VHOST_USER_SET_FEATURES, VHOST_SET_MEM_TABLE,
(...) will be send once per queue pair and not once per device.
I don't think it's a problem, but maybe it deserves a small comment
in the protocol documentation.


Apart from these 2 small comments, the approach looks correct, so
Acked-by: Olivier Matz <address@hidden>


Regards,
Olivier



reply via email to

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