On Thu, Jan 30, 2025 at 9:12 AM Shaiq Wani <shaiq.w...@intel.com> wrote: > > In case some CPUs don't support AVX512. Enable AVX2 for them to > get better per-core performance. > > The single queue model processes all packets in order while > the split queue model separates packet data and metadata into > different queues for parallel processing and improved performance. > > Signed-off-by: Shaiq Wani <shaiq.w...@intel.com> > --- > drivers/common/idpf/idpf_common_device.h | 1 + > drivers/common/idpf/idpf_common_rxtx.h | 4 + > drivers/common/idpf/idpf_common_rxtx_avx2.c | 485 ++++++++++++++++++++ > drivers/common/idpf/meson.build | 7 + > drivers/common/idpf/version.map | 1 + > drivers/net/intel/idpf/idpf_rxtx.c | 11 + > 6 files changed, 509 insertions(+) > create mode 100644 drivers/common/idpf/idpf_common_rxtx_avx2.c > > diff --git a/drivers/common/idpf/idpf_common_device.h > b/drivers/common/idpf/idpf_common_device.h > index bfa927a5ff..734be1c88a 100644 > --- a/drivers/common/idpf/idpf_common_device.h > +++ b/drivers/common/idpf/idpf_common_device.h > @@ -123,6 +123,7 @@ struct idpf_vport { > > bool rx_vec_allowed; > bool tx_vec_allowed; > + bool rx_use_avx2; > bool rx_use_avx512; > bool tx_use_avx512; > > diff --git a/drivers/common/idpf/idpf_common_rxtx.h > b/drivers/common/idpf/idpf_common_rxtx.h > index eeeeed12e2..f50cf5ef46 100644 > --- a/drivers/common/idpf/idpf_common_rxtx.h > +++ b/drivers/common/idpf/idpf_common_rxtx.h > @@ -302,5 +302,9 @@ uint16_t idpf_dp_splitq_xmit_pkts_avx512(void *tx_queue, > struct rte_mbuf **tx_pk > __rte_internal > uint16_t idpf_dp_singleq_recv_scatter_pkts(void *rx_queue, struct rte_mbuf > **rx_pkts, > uint16_t nb_pkts); > +__rte_internal > +uint16_t idpf_dp_singleq_recv_pkts_avx2(void *rx_queue, > + struct rte_mbuf **rx_pkts, > + uint16_t nb_pkts); > > #endif /* _IDPF_COMMON_RXTX_H_ */ > diff --git a/drivers/common/idpf/idpf_common_rxtx_avx2.c > b/drivers/common/idpf/idpf_common_rxtx_avx2.c > new file mode 100644 > index 0000000000..de76f01ff8 > --- /dev/null > +++ b/drivers/common/idpf/idpf_common_rxtx_avx2.c > @@ -0,0 +1,485 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2023 Intel Corporation > + */ > + > +#include <rte_vect.h> > + > +#include "idpf_common_rxtx.h" > +#include "idpf_common_device.h" > + > +#ifndef __INTEL_COMPILER > +#pragma GCC diagnostic ignored "-Wcast-qual" > +#endif
Please, use newly introduced macros and stop ignoring such warnings. For example, look at: https://git.dpdk.org/dpdk/diff/drivers/net/i40e/i40e_rxtx_vec_avx2.c?id=43fd3624fdfe3a33904a9b64d94306dd3d4f2c13 -- David Marchand