This patch set replaces the two-way barriers with C11 one-way barriers for split vring idx, when the frontend and backend are implemented in software.
By doing PVP benchmarking, the test result showed the throughput increased 20% with the 0.001% of acceptable loss rate on Thunderx2 platform.[1] By doing vhost-user + virtio-user case benchmarking, 4% performance gain in the RFC2544 test of 0.001% of acceptable loss rate was measured on Thunderx2 platform.[2] [1]https://doc.dpdk.org/guides/howto/pvp_reference_benchmark.html [2]https://doc.dpdk.org/dts/test_plans/pvp_multi_paths_performance_test_plan.html PVP test with virtio 1.0 normal path v2: Add test performance statistics. Joyce Kong (2): virtio: one way barrier for split vring used idx virtio: one way barrier for split vring avail idx drivers/net/virtio/virtio_ethdev.c | 9 ++-- drivers/net/virtio/virtio_ring.h | 2 +- drivers/net/virtio/virtio_rxtx.c | 46 ++++++++-------- drivers/net/virtio/virtio_rxtx_simple_neon.c | 5 +- drivers/net/virtio/virtio_rxtx_simple_sse.c | 5 +- .../net/virtio/virtio_user/virtio_user_dev.c | 8 +-- drivers/net/virtio/virtqueue.c | 2 +- drivers/net/virtio/virtqueue.h | 53 ++++++++++++++++--- lib/librte_vhost/virtio_net.c | 19 +++---- 9 files changed, 90 insertions(+), 59 deletions(-) -- 2.17.1