[dpdk-dev] [PATCH] net/mlx5: add vectorized Rx
Thomas Monjalon
thomas at monjalon.net
Tue May 30 12:45:49 CEST 2017
28/05/2017 17:40, Yongseok Koh:
> Vectorized Rx API for x86 is added.
>
> Signed-off-by: Yongseok Koh <yskoh at mellanox.com>
> ---
> drivers/net/mlx5/Makefile | 1 +
> drivers/net/mlx5/mlx5_defs.h | 6 +
> drivers/net/mlx5/mlx5_ethdev.c | 8 +
> drivers/net/mlx5/mlx5_rxq.c | 39 +++-
> drivers/net/mlx5/mlx5_rxtx.c | 485 +++++++++++++++++++++++++++++++++++++++++
> drivers/net/mlx5/mlx5_rxtx.h | 10 +
> 6 files changed, 548 insertions(+), 1 deletion(-)
It would be probably clearer to have a specific file for
Rx/Tx on SSE. So it would be compiled only for x86.
> --- a/drivers/net/mlx5/Makefile
> +++ b/drivers/net/mlx5/Makefile
> @@ -60,6 +60,7 @@ CFLAGS += -D_DEFAULT_SOURCE
> CFLAGS += -D_XOPEN_SOURCE=600
> CFLAGS += $(WERROR_FLAGS)
> CFLAGS += -Wno-strict-prototypes
> +CFLAGS += -msse4.1
> LDLIBS += -libverbs
[...]
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -723,7 +723,11 @@ mlx5_dev_supported_ptypes_get(struct rte_eth_dev *dev)
>
> };
>
> +#ifdef MLX5_VECTORIZED_RX
> + if (dev->rx_pkt_burst == mlx5_rx_burst_vec)
> +#else
> if (dev->rx_pkt_burst == mlx5_rx_burst)
> +#endif
> return ptypes;
> return NULL;
> }
Can we avoid an #ifdef here?
We should check SSE support at runtime with rte_cpu_get_flag_enabled().
More information about the dev
mailing list