[dpdk-dev] [PATCH] vhost library doc update
Butler, Siobhan A
siobhan.a.butler at intel.com
Thu Mar 26 21:20:38 CET 2015
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Huawei Xie
> Sent: Wednesday, March 11, 2015 4:22 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] vhost library doc update
>
> add vhost user documentation
>
> Signed-off-by: Huawei Xie <huawei.xie at intel.com>
> ---
> doc/guides/prog_guide/vhost_lib.rst | 52
> ++++++++++++++++++++++++++++++-------
> 1 file changed, 42 insertions(+), 10 deletions(-)
>
> diff --git a/doc/guides/prog_guide/vhost_lib.rst
> b/doc/guides/prog_guide/vhost_lib.rst
> index 0b6eda7..ab35b74 100644
> --- a/doc/guides/prog_guide/vhost_lib.rst
> +++ b/doc/guides/prog_guide/vhost_lib.rst
> @@ -31,25 +31,28 @@
> Vhost Library
> =============
>
> -The vhost cuse (cuse: user space character device driver) library implements
> a -vhost cuse driver. It also creates, manages and destroys vhost devices for -
> corresponding virtio devices in the guest. Vhost supported vSwitch could
> register -callbacks to this library, which will be called when a vhost device is
> activated -or deactivated by guest virtual machine.
> +The vhost library implements a user space vhost driver. It supports
> +both vhost-cuse
> +(cuse: user space character device) and vhost-user(user space socket
> server).
> +It also creates, manages and destroys vhost devices for corresponding
> +virtio devices in the guest. Vhost supported vSwitch could register
> +callbacks to this library, which will be called when a vhost device is
> +activated or deactivated by guest virtual machine.
>
> Vhost API Overview
> ------------------
>
> * Vhost driver registration
>
> - rte_vhost_driver_register registers the vhost cuse driver into the
> system.
> - Character device file will be created in the /dev directory.
> + rte_vhost_driver_register registers the vhost driver into the system.
> + For vhost-cuse, character device file will be created under the /dev
> directory.
> Character device name is specified as the parameter.
> + For vhost-user, a unix domain socket server will be created with the
> parameter as
> + the local socket path.
>
> * Vhost session start
>
> rte_vhost_driver_session_start starts the vhost session loop.
> - Vhost cuse session is an infinite blocking loop.
> + Vhost session is an infinite blocking loop.
> Put the session in a dedicate DPDK thread.
>
> * Callback register
> @@ -73,6 +76,8 @@ Vhost API Overview
> Vhost Implementation
> --------------------
>
> +Vhost cuse implementation
> +~~~~~~~~~~~~~~~~~~~~~~~~~
> When vSwitch registers the vhost driver, it will register a cuse device driver
> into the system and creates a character device file. This cuse driver will
> receive vhost open/release/IOCTL message from QEMU simulator.
> @@ -89,13 +94,40 @@ which means vhost could access the shared virtio ring
> and the guest physical address specified in the entry of the ring.
>
> The guest virtual machine tells the vhost whether the virtio device is ready -
> for processing or is de-activated through VHOST_SET_BACKEND message.
> +for processing or is de-activated through VHOST_NET_SET_BACKEND
> message.
> The registered callback from vSwitch will be called.
>
> When the release call is released, vhost will destroy the device.
>
> +Vhost user implementation
> +~~~~~~~~~~~~~~~~~~~~~~~~~
> +When vSwitch registers a vhost driver, it will create a unix domain
> +socket server into the system. This server will listen for a connection
> +and process the vhost message from QEMU simulator.
> +
> +When there is a new socket connection, it means a new virtio device has
> +been created in the guest virtual machine, and the vhost driver will create a
> vhost device for this virtio device.
> +
> +For messages with a file descriptor, the file descriptor could be
> +directly used in the vhost process as it is already installed by unix domain
> socket.
> + * VHOST_SET_MEM_TABLE
> + * VHOST_SET_VRING_KICK
> + * VHOST_SET_VRING_CALL
> + * VHOST_SET_LOG_FD
> + * VHOST_SET_VRING_ERR
> +
> +For VHOST_SET_MEM_TABLE message, QEMU will send us information for
> each
> +memory region and its file descriptor in the ancillary data of the message.
> The fd is used to map that region.
> +
> +There is no VHOST_NET_SET_BACKEND message as in vhost cuse to signal
> us
> +whether virtio device is ready or should be stopped.
> +VHOST_SET_VRING_KICK is used as the signal to put the vhost device onto
> data plane.
> +VHOST_GET_VRING_BASE is used as the signal to remove vhost device
> from data plane.
> +
> +When the socket connection is closed, vhost will destroy the device.
> +
> Vhost supported vSwitch reference
> ---------------------------------
>
> -For how to support vhost in vSwitch, please refer to vhost example in the
> +For more vhost details and how to support vhost in vSwitch, please
> +refer to vhost example in the
> DPDK Sample Applications Guide.
> --
> 1.8.1.4
Acked-by Siobhan Butler <siobhan.a.butler at intel.com>
More information about the dev
mailing list