[dpdk-dev] [PATCH v4 1/2] net/ixgbe: add SSE4.1 support to vPMD's minimum requirement

Richardson, Bruce bruce.richardson at intel.com
Tue Jun 13 18:30:44 CEST 2017

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Qi Zhang
> Sent: Tuesday, June 13, 2017 9:58 AM
> To: Ananyev, Konstantin <konstantin.ananyev at intel.com>; Yigit, Ferruh
> <ferruh.yigit at intel.com>
> Cc: dev at dpdk.org; Lu, Wenzhuo <wenzhuo.lu at intel.com>; Zhang, Helin
> <helin.zhang at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>
> Subject: [dpdk-dev] [PATCH v4 1/2] net/ixgbe: add SSE4.1 support to vPMD's
> minimum requirement
> x86 vPMD will be disabled if currently platform does not support SSE4.1.
> This is the prework to enable vPMD ptype offload where SSE4.1
> instrunctions will be involved.
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 4 ++++
>  1 file changed, 4 insertions(+)
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c
> b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c
> index a7bc199..fbbd872 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c
> @@ -652,5 +652,9 @@ ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq)  int
> __attribute__((cold))  ixgbe_rx_vec_dev_conf_condition_check(struct
> rte_eth_dev *dev)  {
> +	/* need SSE4.1 support */
> +	if (!rte_cpu_get_flag_enabled(RTE_CPUFLAG_SSE4_1))
> +		return -1;
> +
>  	return ixgbe_rx_vec_dev_conf_condition_check_default(dev);
>  }

Quite a few things for DPDK on x86 and x86_64 depend on SSE4.x now. I think we should just up the minimum supported x86 CPU architecture for DPDK to require SSE4.2 and be done with it. SSE4.2 has been around for almost a decade now (https://en.wikipedia.org/wiki/SSE4#SSE4.2), and so I would consider it unlikely that anyone wants to use DPDK on a machine which does not have that instruction set supported. 

Doing so would mean we remove all conditional compilation settings for our x86 vector drivers to add -msse flags, and can replace these runtime checks in each driver with a single check in EAL init to ensure the CPU supports SSE4.2. Possibly other cleanup could be done as well.

Thoughts? any objections?


More information about the dev mailing list