[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v10 6/7] vhost-user: add multiple queue support
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v10 6/7] vhost-user: add multiple queue support |
Date: |
Tue, 22 Sep 2015 08:44:18 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 09/18/2015 08:58 AM, Yuanhan Liu wrote:
> From: Changchun Ouyang <address@hidden>
>
> This patch is initially based a patch from Nikolay Nikolaev.
>
> This patch adds vhost-user multiple queue support, by creating a nc
> and vhost_net pair for each queue.
>
> Qemu exits if find that the backend can't support number of requested
s/support/support the/
> queues (by providing queues=# option). The max number is queried by a
> new message, VHOST_USER_GET_QUEUE_NUM, and is sent only when protocol
> feature VHOST_USER_PROTOCOL_F_MQ is present first.
>
> The max queue check is done at vhost-user initiation stage. We initiate
> one queue first, which, in the meantime, also gets the max_queues the
> backend supports.
>
> In older version, it was reported that some messages are sent more times
> than necessary. Here we came an agreement with Michael that we could
> categorize vhost user messages to 2 types: non-vring specific messages,
> which should be sent only once, and vring specific messages, which should
> be sent per queue.
>
> Here I introduced a helper function vhost_user_one_time_request(), which
> lists following messages as non-vring specific messages:
>
> VHOST_USER_SET_OWNER
> VHOST_USER_RESET_DEVICE
> VHOST_USER_SET_MEM_TABLE
> VHOST_USER_GET_QUEUE_NUM
>
> For above messages, we simply ignore them when they are not sent the first
> time.
>
> Signed-off-by: Nikolay Nikolaev <address@hidden>
> Signed-off-by: Changchun Ouyang <address@hidden>
> Signed-off-by: Yuanhan Liu <address@hidden>
>
> ---
Just focusing on the interface portions:
> +++ b/qapi-schema.json
> @@ -2480,12 +2480,16 @@
> #
> # @vhostforce: #optional vhost on for non-MSIX virtio guests (default:
> false).
> #
> +# @queues: #optional number of queues to be created for multiqueue vhost-user
> +# (default: 1) (Since 2.5)
> +#
> # Since 2.1
> ##
> { 'struct': 'NetdevVhostUserOptions',
> 'data': {
> 'chardev': 'str',
> - '*vhostforce': 'bool' } }
> + '*vhostforce': 'bool',
> + '*queues': 'int' } }
>
Discoverable via introspection, and should work with the patches from
Zoltan and me that get QMP netdev_add converted over to qapi.
Interface is good to go.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH v10 7/7] vhost-user: add a new message to disable/enable a specific virt queue., (continued)
[Qemu-devel] [PATCH v10 6/7] vhost-user: add multiple queue support, Yuanhan Liu, 2015/09/18
Re: [Qemu-devel] [PATCH v10 6/7] vhost-user: add multiple queue support, Michael S. Tsirkin, 2015/09/22
Re: [Qemu-devel] [PATCH v10 6/7] vhost-user: add multiple queue support,
Eric Blake <=
Re: [Qemu-devel] [PATCH v10 6/7] vhost-user: add multiple queue support, Eduardo Habkost, 2015/09/22