8a6ff33d6d
Add the vectorized version of the no-scatter Rx handler. It aims to process 8 descriptors per loop using AVX2 SIMD instructions. This handler is in its own file enic_rxtx_vec_avx2.c, and makefile and meson.build are modified to compile it when the compiler supports AVX2. Under ideal conditions, the vectorized handler reduces cycles/packet by more than 30%, when compared against the no-scatter Rx handler. Most implementation ideas come from i40e's AVX2 based handler, so credit goes to its authors. At this point, the new handler is meant for field trials, and is not selected by default. So add a new devarg enable-avx2-rx to allow the user to request the use of the new handler. When enable-avx2-rx=1, the driver will consider using the new handler. Also update the guide doc and introduce the vectorized handler. Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com> Reviewed-by: John Daley <johndale@cisco.com> |
||
---|---|---|
.. | ||
base | ||
enic_clsf.c | ||
enic_compat.h | ||
enic_ethdev.c | ||
enic_flow.c | ||
enic_main.c | ||
enic_res.c | ||
enic_res.h | ||
enic_rxtx_common.h | ||
enic_rxtx_vec_avx2.c | ||
enic_rxtx.c | ||
enic.h | ||
Makefile | ||
meson.build | ||
rte_pmd_enic_version.map |