[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] docs: clarify multiqueue vs multiple virtqueues
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH] docs: clarify multiqueue vs multiple virtqueues |
Date: |
Wed, 17 Jul 2019 11:14:53 +0100 |
User-agent: |
Mutt/1.12.0 (2019-05-25) |
On Mon, Jun 24, 2019 at 10:13:04AM +0100, Stefan Hajnoczi wrote:
> The vhost-user specification does not explain when
> VHOST_USER_PROTOCOL_F_MQ must be implemented. This may lead
> implementors of vhost-user masters to believe that this protocol feature
> is required for any device that has multiple virtqueues. That would be
> a mistake since existing vhost-user slaves offer multiple virtqueues but
> do not advertise VHOST_USER_PROTOCOL_F_MQ.
>
> For example, a vhost-net device with one rx/tx queue pair is not
> multiqueue. The slave does not need to advertise
> VHOST_USER_PROTOCOL_F_MQ. Therefore the master must assume it has these
> virtqueues and cannot rely on askingt the slave how many virtqueues
> exist.
>
> Extend the specification to explain the different between true
> multiqueue and regular devices with a fixed virtqueue layout.
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
> Based-on: <address@hidden>
> ---
> docs/interop/vhost-user.rst | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
Ping?
>
> diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
> index 5750668aba..7827b710aa 100644
> --- a/docs/interop/vhost-user.rst
> +++ b/docs/interop/vhost-user.rst
> @@ -324,6 +324,15 @@ must support changing some configuration aspects on the
> fly.
> Multiple queue support
> ----------------------
>
> +Many devices have a fixed number of virtqueues. In this case the master
> +already knows the number of available virtqueues without communicating with
> the
> +slave.
> +
> +Some devices do not have a fixed number of virtqueues. Instead the maximum
> +number of virtqueues is chosen by the slave. The number can depend on host
> +resource availability or slave implementation details. Such devices are
> called
> +multiple queue devices.
> +
> Multiple queue support allows the slave to advertise the maximum number of
> queues. This is treated as a protocol extension, hence the slave has to
> implement protocol features first. The multiple queues feature is supported
> @@ -339,6 +348,14 @@ queue in the sent message to identify a specified queue.
> The master enables queues by sending message ``VHOST_USER_SET_VRING_ENABLE``.
> vhost-user-net has historically automatically enabled the first queue pair.
>
> +Slaves should always implement the ``VHOST_USER_PROTOCOL_F_MQ`` protocol
> +feature, even for devices with a fixed number of virtqueues, since it is
> simple
> +to implement and offers a degree of introspection.
> +
> +Masters must not rely on the ``VHOST_USER_PROTOCOL_F_MQ`` protocol feature
> for
> +devices with a fixed number of virtqueues. Only true multiqueue devices
> +require this protocol feature.
> +
> Migration
> ---------
>
> --
> 2.21.0
>
signature.asc
Description: PGP signature
[Qemu-devel] [PULL 12/12] virtio-balloon: free pbp more aggressively, Michael S. Tsirkin, 2019/07/25
Re: [Qemu-devel] [PULL 00/12] virtio, pc: fixes, cleanups, Peter Maydell, 2019/07/26