mbox series

[v4,0/2] virtio: one way barrier for packed vring flags

Message ID 1568698107-36668-1-git-send-email-joyce.kong@arm.com (mailing list archive)
Headers
Series virtio: one way barrier for packed vring flags |

Message

Joyce Kong Sept. 17, 2019, 5:28 a.m. UTC
  This patch set replaces the two-way barriers with C11 one-way barriers
for packed vring flags, when the frontend and backend are implemented
in software.

By doing vhost-user + virtio-user case benchmarking, 9% performance gain
in the RFC2544 test was measured on Thunderx2 platform.[1] And by doing
VM2VM case benchmarking, 11% perf gain was measured on Ampere platform.

[1]https://doc.dpdk.org/dts/test_plans/pvp_multi_paths_performance_test_plan.html
   PVP test with virtio 1.1 mergeable path

v4:
Use rte_smp_rmb/wmb instead of __atomic_load/store_n on x86 as it reports a
better perf(~1.5%), which comes from the saved branch by the compiler. The
if and else branch are identical with the smp and cio barriers both defined
as compiler barriers on x86.
http://inbox.dpdk.org/dev/E0CBA5A1980F1F408E1F28F9991B5B1D50EFF246@SHSMSX104.ccr.corp.intel.com/

v3:
Wrap C11 one-way barriers and DMA barriers(rte_cio_*) together with an inline fuction.

v2:
Convert RFC to patch.

Joyce Kong (2):
  virtio: one way barrier for packed vring desc avail flags
  virtio: one way barrier for packed vring desc used flags

 drivers/net/virtio/virtio_rxtx.c                 | 25 +++++++-----
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 10 +++--
 drivers/net/virtio/virtqueue.h                   | 49 +++++++++++++++++++++++-
 lib/librte_vhost/vhost.h                         |  2 +-
 lib/librte_vhost/virtio_net.c                    | 16 ++++----
 5 files changed, 79 insertions(+), 23 deletions(-)
  

Comments

Maxime Coquelin Oct. 16, 2019, 11:07 a.m. UTC | #1
On 9/17/19 7:28 AM, Joyce Kong wrote:
> This patch set replaces the two-way barriers with C11 one-way barriers
> for packed vring flags, when the frontend and backend are implemented
> in software.
> 
> By doing vhost-user + virtio-user case benchmarking, 9% performance gain
> in the RFC2544 test was measured on Thunderx2 platform.[1] And by doing
> VM2VM case benchmarking, 11% perf gain was measured on Ampere platform.
> 
> [1]https://doc.dpdk.org/dts/test_plans/pvp_multi_paths_performance_test_plan.html
>    PVP test with virtio 1.1 mergeable path
> 
> v4:
> Use rte_smp_rmb/wmb instead of __atomic_load/store_n on x86 as it reports a
> better perf(~1.5%), which comes from the saved branch by the compiler. The
> if and else branch are identical with the smp and cio barriers both defined
> as compiler barriers on x86.
> http://inbox.dpdk.org/dev/E0CBA5A1980F1F408E1F28F9991B5B1D50EFF246@SHSMSX104.ccr.corp.intel.com/
> 
> v3:
> Wrap C11 one-way barriers and DMA barriers(rte_cio_*) together with an inline fuction.
> 
> v2:
> Convert RFC to patch.
> 
> Joyce Kong (2):
>   virtio: one way barrier for packed vring desc avail flags
>   virtio: one way barrier for packed vring desc used flags
> 
>  drivers/net/virtio/virtio_rxtx.c                 | 25 +++++++-----
>  drivers/net/virtio/virtio_user/virtio_user_dev.c | 10 +++--
>  drivers/net/virtio/virtqueue.h                   | 49 +++++++++++++++++++++++-
>  lib/librte_vhost/vhost.h                         |  2 +-
>  lib/librte_vhost/virtio_net.c                    | 16 ++++----
>  5 files changed, 79 insertions(+), 23 deletions(-)
> 

Applied to dpdk-next-virtio/master.

Thanks,
Maxime