mbox series

[v1,0/4] Vectorize packed ring RX/TX path with NEON

Message ID 20201117100635.27690-1-joyce.kong@arm.com (mailing list archive)
Headers
Series Vectorize packed ring RX/TX path with NEON |

Message

Joyce Kong Nov. 17, 2020, 10:06 a.m. UTC
  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
  

Comments

Maxime Coquelin Jan. 8, 2021, 9:11 a.m. UTC | #1
On 11/17/20 11:06 AM, Joyce Kong wrote:
> 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
> 

Series applied to dpdk-next-virtio/main.

Thanks,
Maxime