[dpdk-dev] [PATCH v3 1/3] net/i40e: remove devarg use-latest-supported-vec

Ferruh Yigit ferruh.yigit at intel.com
Fri Jan 15 14:36:51 CET 2021


On 1/14/2021 6:39 AM, Leyi Rong wrote:
> As eal parameter --force-max-simd-bitwidth is already introduced,
> to make it more clear when setting rx/tx function, remove
> devarg use-latest-supported-vec support.
> 
> Signed-off-by: Leyi Rong <leyi.rong at intel.com>
> Acked-by: Wenzhuo Lu <wenzhuo.lu at intel.com>

<...>

> -static eth_rx_burst_t
> -i40e_get_recommend_rx_vec(bool scatter)
> +static inline bool
> +get_avx_supported(bool request_avx512)
>   {
> -#if defined(RTE_ARCH_X86) && defined(CC_AVX2_SUPPORT)
> -	/*
> -	 * since AVX frequency can be different to base frequency, limit
> -	 * use of AVX2 version to later plaforms, not all those that could
> -	 * theoretically run it.
> -	 */
> -	if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) &&
> -			rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256)
> -		return scatter ? i40e_recv_scattered_pkts_vec_avx2 :
> -				 i40e_recv_pkts_vec_avx2;
> +#ifdef RTE_ARCH_X86
> +	if (request_avx512) {
> +		if (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512 &&
> +		rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1 &&
> +		rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512BW) == 1)
> +#ifdef CC_AVX512_SUPPORT
> +			return true;
> +#else
> +		PMD_DRV_LOG(NOTICE,
> +			"AVX512 is not supported in build env");
> +		return false;
> +#endif
> +	} else {
> +		if (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256 &&
> +		rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2) == 1 &&
> +		rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1)
> +#ifdef CC_AVX2_SUPPORT
> +			return true;
> +#else
> +		PMD_DRV_LOG(NOTICE,
> +			"AVX2 is not supported in build env");
> +		return false;
>   #endif
> -	return scatter ? i40e_recv_scattered_pkts_vec :
> -			 i40e_recv_pkts_vec;
> +	}
> +#endif /* RTE_ARCH_X86 */
> +
> +	return false;
>   }

This was still causing build error for non x86, becuase of not used 
'request_avx512' variable, updated as below in next-net:

  diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
  index a4661cdd8377..ce2b0bc12ed9 100644
  --- a/drivers/net/i40e/i40e_rxtx.c
  +++ b/drivers/net/i40e/i40e_rxtx.c
  @@ -3122,6 +3122,8 @@ get_avx_supported(bool request_avx512)
                  return false;
   #endif
          }
  +#else
  +       RTE_SET_USED(request_avx512);
   #endif /* RTE_ARCH_X86 */

          return false;


More information about the dev mailing list