From: Joyce Kong Date: Fri, 10 Jul 2020 02:38:49 +0000 (+0800) Subject: net/virtio: restrict pointer aliasing for NEON X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c92b936fbd0eb88ea0c64da50f9ad3be73c83b73;p=dpdk.git net/virtio: restrict pointer aliasing for NEON Restrict pointer aliasing to allow the compiler to vectorize loops more aggressively. With this patch, a 9.6% improvement is observed in throughput for the virtio-net PVP case, and a 2.4% perf improvement in throughput for the virtio-user PVP case. All performance data are measured on ThunderX-2 platform under the 0.001% acceptable packet loss with 2 cores on the vhost side and 1 core on the virtio side. Signed-off-by: Joyce Kong Reviewed-by: Phil Yang --- diff --git a/drivers/net/virtio/virtio_rxtx_simple_neon.c b/drivers/net/virtio/virtio_rxtx_simple_neon.c index 8e6fa1fd73..a9b649814e 100644 --- a/drivers/net/virtio/virtio_rxtx_simple_neon.c +++ b/drivers/net/virtio/virtio_rxtx_simple_neon.c @@ -36,8 +36,8 @@ * - nb_pkts < RTE_VIRTIO_DESC_PER_LOOP, just return no packet */ uint16_t -virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, - uint16_t nb_pkts) +virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf + **__rte_restrict rx_pkts, uint16_t nb_pkts) { struct virtnet_rx *rxvq = rx_queue; struct virtqueue *vq = rxvq->vq;