[PATCH v2 2/2] vhost: force vIOMMU enablement with VDUSE

Kevin Traynor ktraynor at redhat.com
Thu Jul 13 14:47:35 CEST 2023


On 13/07/2023 12:29, Maxime Coquelin wrote:
> Unlike Vhost-user, VDUSE requires vIOMMU support.
> This patch ignores whether RTE_VHOST_USER_IOMMU_SUPPORT
> flag is passed at register time to avoid having application
> to pass it for having working VDUSE device creation.
> 
> Fixes: 0adb8eccc6a6 ("vhost: add VDUSE device creation and destruction")
> 
> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> ---
>   lib/vhost/socket.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/vhost/socket.c b/lib/vhost/socket.c
> index 57dfe3d2fe..79f2138f60 100644
> --- a/lib/vhost/socket.c
> +++ b/lib/vhost/socket.c
> @@ -932,7 +932,10 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
>   	vsocket->async_copy = flags & RTE_VHOST_USER_ASYNC_COPY;
>   	vsocket->net_compliant_ol_flags = flags & RTE_VHOST_USER_NET_COMPLIANT_OL_FLAGS;
>   	vsocket->stats_enabled = flags & RTE_VHOST_USER_NET_STATS_ENABLE;
> -	vsocket->iommu_support = flags & RTE_VHOST_USER_IOMMU_SUPPORT;
> +	if (vsocket->is_vduse)
> +		vsocket->iommu_support = true;
> +	else
> +		vsocket->iommu_support = flags & RTE_VHOST_USER_IOMMU_SUPPORT;
>   
>   	if (vsocket->async_copy &&
>   		(flags & (RTE_VHOST_USER_IOMMU_SUPPORT |
                  ^^^ do you need to update this check ?

> @@ -986,7 +989,7 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
>   		vsocket->features &= ~seg_offload_features;
>   	}
>   
> -	if (!(flags & RTE_VHOST_USER_IOMMU_SUPPORT)) {
> +	if (!vsocket->iommu_support) {
>   		vsocket->supported_features &= ~(1ULL << VIRTIO_F_IOMMU_PLATFORM);
>   		vsocket->features &= ~(1ULL << VIRTIO_F_IOMMU_PLATFORM);
>   	}



More information about the dev mailing list