This patch set introduces vectorized RX/TX path for packed ring with NEON intrinsics.
With this patch set, PVP case has 1.5% perf uplift for the packed vectorized NEON path compared with the non-vector packed path, under 0.001% acceptable loss with 2 cores on vhost side and 1 core on virtio side. Joyce Kong (4): net/virtio: move AVX based Rx and Tx code to separate file net/virtio: add vectorized packed ring Rx NEON path net/virtio: add vectorized packed ring Tx NEON path net/virtio: add election for packed vector NEON path doc/guides/nics/virtio.rst | 6 +- drivers/net/virtio/meson.build | 5 +- drivers/net/virtio/virtio_ethdev.c | 19 +- drivers/net/virtio/virtio_rxtx.c | 6 +- drivers/net/virtio/virtio_rxtx_packed.c | 139 ++++ drivers/net/virtio/virtio_rxtx_packed.h | 317 ++++++++++ drivers/net/virtio/virtio_rxtx_packed_avx.c | 626 ------------------- drivers/net/virtio/virtio_rxtx_packed_avx.h | 239 +++++++ drivers/net/virtio/virtio_rxtx_packed_neon.h | 293 +++++++++ drivers/net/virtio/virtio_user_ethdev.c | 2 +- 10 files changed, 1012 insertions(+), 640 deletions(-) create mode 100644 drivers/net/virtio/virtio_rxtx_packed.c create mode 100644 drivers/net/virtio/virtio_rxtx_packed.h delete mode 100644 drivers/net/virtio/virtio_rxtx_packed_avx.c create mode 100644 drivers/net/virtio/virtio_rxtx_packed_avx.h create mode 100644 drivers/net/virtio/virtio_rxtx_packed_neon.h -- 2.28.0