[dpdk-dev] [PATCH 05/21] vhost: add support to slave requests channel
Tiwei Bie
tiwei.bie at intel.com
Tue Sep 5 06:19:40 CEST 2017
On Thu, Aug 31, 2017 at 11:50:07AM +0200, Maxime Coquelin wrote:
> Currently, only QEMU sends requests, the backend sends
> replies. In some cases, the backend may need to send
> requests to QEMU, like IOTLB miss events when IOMMU is
> supported.
>
> This patch introduces a new channel for such requests.
> QEMU sends a file descriptor of a new socket using
> VHOST_USER_SET_SLAVE_REQ_FD.
>
> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> ---
> lib/librte_vhost/vhost.h | 2 ++
> lib/librte_vhost/vhost_user.c | 27 +++++++++++++++++++++++++++
> lib/librte_vhost/vhost_user.h | 10 +++++++++-
> 3 files changed, 38 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
> index 18ad69c85..2340b0c2a 100644
> --- a/lib/librte_vhost/vhost.h
> +++ b/lib/librte_vhost/vhost.h
> @@ -196,6 +196,8 @@ struct virtio_net {
> uint32_t nr_guest_pages;
> uint32_t max_guest_pages;
> struct guest_page *guest_pages;
> +
> + int slave_req_fd;
> } __rte_cache_aligned;
>
>
> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> index 8984dcb6a..7b3c2f32a 100644
> --- a/lib/librte_vhost/vhost_user.c
> +++ b/lib/librte_vhost/vhost_user.c
> @@ -76,6 +76,7 @@ static const char *vhost_message_str[VHOST_USER_MAX] = {
> [VHOST_USER_SET_VRING_ENABLE] = "VHOST_USER_SET_VRING_ENABLE",
> [VHOST_USER_SEND_RARP] = "VHOST_USER_SEND_RARP",
> [VHOST_USER_NET_SET_MTU] = "VHOST_USER_NET_SET_MTU",
> + [VHOST_USER_SET_SLAVE_REQ_FD] = "VHOST_USER_SET_SLAVE_REQ_FD",
> };
>
> static uint64_t
> @@ -122,6 +123,11 @@ vhost_backend_cleanup(struct virtio_net *dev)
> munmap((void *)(uintptr_t)dev->log_addr, dev->log_size);
> dev->log_addr = 0;
> }
> +
> + if (dev->slave_req_fd >= 0) {
> + close(dev->slave_req_fd);
> + dev->slave_req_fd = -1;
The slave_req_fd should also be initialized to -1 when allocating
the virtio_net structure. Currently, it's missing.
Best regards,
Tiwei Bie
More information about the dev
mailing list