[dpdk-dev] [PATCH v2 4/5] vhost: notify virtq file descriptor update

Maxime Coquelin maxime.coquelin at redhat.com
Fri Jun 26 14:19:57 CEST 2020



On 6/25/20 3:38 PM, Matan Azrad wrote:
> When virtq call or kick file descriptors are changed in the device
> configuration when the queue is ready, the application and the vDPA
> driver should be notified to be aligned to the new file descriptors.
> 
> Notify the state to be disabled before the file descriptor update and
> return it back to be enabled after the update.
> 
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> ---
>  lib/librte_vhost/vhost_user.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> index f690fdb..f3966b6 100644
> --- a/lib/librte_vhost/vhost_user.c
> +++ b/lib/librte_vhost/vhost_user.c
> @@ -1624,6 +1624,12 @@
>  		"vring call idx:%d file:%d\n", file.index, file.fd);
>  
>  	vq = dev->virtqueue[file.index];
> +
> +	if (vq->ready) {
> +		vhost_user_notify_queue_state(dev, file.index, 0);
> +		vq->ready = 0;
> +	}
> +
>  	if (vq->callfd >= 0)
>  		close(vq->callfd);
>  
> @@ -1882,6 +1888,11 @@ static int vhost_user_set_vring_err(struct virtio_net **pdev __rte_unused,
>  				dev->vid, file.index, 1);
>  	}
>  
> +	if (vq->ready) {
> +		vhost_user_notify_queue_state(dev, file.index, 0);
> +		vq->ready = 0;
> +	}
> +
>  	if (vq->kickfd >= 0)
>  		close(vq->kickfd);
>  	vq->kickfd = file.fd;
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>

Thanks,
Maxime



More information about the dev mailing list