[PATCH v2] net/mlx5: fix hypervisor detection in VLAN workaround
Bing Zhao
bingz at nvidia.com
Thu Jun 5 05:06:32 CEST 2025
Hi,
Since it is only a WA and no need to consider all archs or CPU types, LGTM so far.
> -----Original Message-----
> From: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
> Sent: Friday, December 6, 2024 10:26 PM
> To: dev at dpdk.org
> Cc: Raslan Darawsheh <rasland at nvidia.com>; Matan Azrad <matan at nvidia.com>;
> Suanming Mou <suanmingm at nvidia.com>; stable at dpdk.org
> Subject: [PATCH v2] net/mlx5: fix hypervisor detection in VLAN workaround
>
> External email: Use caution opening links or attachments
>
>
> The mlx5 PMD provides a specific workaround for the VMware ESXi
> hypervisor, enabling on-demand routing configuration to virtual machines.
> This workaround activates when the device type is a Virtual Function and
> either an ESXi hypervisor is detected or the hypervisor type is unknown.
>
> For non-x86 architectures the function rte_hypervisor_get() consistently
> returns an unknown type, which triggers the workaround automatically
> without any actual needs. If there are VLAN support requirements, this can
> lead to failures in inserting default control flows.
>
> Do not trigger the workaround for unknown hypervisor type in non-x86
> environments.
>
> Fixes: dfedf3e3f9d2 ("net/mlx5: add workaround for VLAN in virtual
> machine")
> Cc: stable at dpdk.org
>
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
>
> --
> v2: updated cooments to remove "white list"
> ---
> drivers/net/mlx5/linux/mlx5_vlan_os.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/mlx5/linux/mlx5_vlan_os.c
> b/drivers/net/mlx5/linux/mlx5_vlan_os.c
> index 81611a8d3f..353484de3f 100644
> --- a/drivers/net/mlx5/linux/mlx5_vlan_os.c
> +++ b/drivers/net/mlx5/linux/mlx5_vlan_os.c
> @@ -112,16 +112,16 @@ mlx5_vlan_vmwa_init(struct rte_eth_dev *dev,
> uint32_t ifindex)
> /* Check whether there is desired virtual environment */
> hv_type = rte_hypervisor_get();
> switch (hv_type) {
> +#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_X86_64)
> + /* Always misdetected on ARM archs, let's ignore this */
> case RTE_HYPERVISOR_UNKNOWN:
> +#endif
> case RTE_HYPERVISOR_VMWARE:
> - /*
> - * The "white list" of configurations
> - * to engage the workaround.
> - */
> + /* The list of configurations to engage the workaround.
> + */
> break;
> default:
> /*
> - * The configuration is not found in the "white list".
> + * The configuration is not found in the list.
> * We should not engage the VLAN workaround.
> */
> return NULL;
> --
> 2.34.1
Acked-by: Bing Zhao <bingz at nvidia.com>
More information about the dev
mailing list