mbox series

[v1,0/8] replace smp barriers in vhost with C11 atomic

Message ID 20201221155033.6771-1-joyce.kong@arm.com (mailing list archive)
Headers
Series replace smp barriers in vhost with C11 atomic |

Message

Joyce Kong Dec. 21, 2020, 3:50 p.m. UTC
  This patchset is to replace rte smp barriers in vhost with C11 atomic
built-ins.

The rte_smp_*mb APIs provide full barrier functionality. However, many
use cases do not require full barriers. To support such use cases, DPDK
will adopt C11 barrier semantics and provide wrappers using C11 atomic
built-ins.[1]

With this patchset, PVP case(vhost-user + virtio-user) has 9.8% perf
uplift for the split in_order path and no perf degradation for the
packed in_order path under 0.001% acceptable loss on ThunderX2 platform.

[1] http://code.dpdk.org/dpdk/latest/source/doc/guides/rel_notes/deprecation.rst

Joyce Kong (8):
  examples/vhost: relax memory ordering when enqueue/dequeue
  examples/vhost_blk: replace smp with thread fence
  vhost: remove unnecessary smp barrier for desc flags
  vhost: remove unnecessary smp barrier for avail idx
  vhost: relax full barriers for desc flags
  vhost: relax full barriers for used idx
  vhost: replace smp with thread fence for packed vring
  vhost: replace smp with thread fence for control path

 examples/vhost/virtio_net.c    | 12 ++++--------
 examples/vhost_blk/vhost_blk.c |  8 ++++----
 lib/librte_vhost/vdpa.c        |  4 ++--
 lib/librte_vhost/vhost.c       | 18 +++++++++---------
 lib/librte_vhost/vhost.h       |  6 +++---
 lib/librte_vhost/vhost_user.c  |  2 +-
 lib/librte_vhost/virtio_net.c  | 26 +++++++++++---------------
 7 files changed, 34 insertions(+), 42 deletions(-)
  

Comments

Maxime Coquelin Jan. 8, 2021, 9:16 a.m. UTC | #1
On 12/21/20 4:50 PM, Joyce Kong wrote:
> This patchset is to replace rte smp barriers in vhost with C11 atomic
> built-ins.
> 
> The rte_smp_*mb APIs provide full barrier functionality. However, many
> use cases do not require full barriers. To support such use cases, DPDK
> will adopt C11 barrier semantics and provide wrappers using C11 atomic
> built-ins.[1]
> 
> With this patchset, PVP case(vhost-user + virtio-user) has 9.8% perf
> uplift for the split in_order path and no perf degradation for the
> packed in_order path under 0.001% acceptable loss on ThunderX2 platform.
> 
> [1] http://code.dpdk.org/dpdk/latest/source/doc/guides/rel_notes/deprecation.rst
> 
> Joyce Kong (8):
>   examples/vhost: relax memory ordering when enqueue/dequeue
>   examples/vhost_blk: replace smp with thread fence
>   vhost: remove unnecessary smp barrier for desc flags
>   vhost: remove unnecessary smp barrier for avail idx
>   vhost: relax full barriers for desc flags
>   vhost: relax full barriers for used idx
>   vhost: replace smp with thread fence for packed vring
>   vhost: replace smp with thread fence for control path
> 
>  examples/vhost/virtio_net.c    | 12 ++++--------
>  examples/vhost_blk/vhost_blk.c |  8 ++++----
>  lib/librte_vhost/vdpa.c        |  4 ++--
>  lib/librte_vhost/vhost.c       | 18 +++++++++---------
>  lib/librte_vhost/vhost.h       |  6 +++---
>  lib/librte_vhost/vhost_user.c  |  2 +-
>  lib/librte_vhost/virtio_net.c  | 26 +++++++++++---------------
>  7 files changed, 34 insertions(+), 42 deletions(-)
> 

Series applied to dpdk-next-virtio/main.

Thanks,
Maxime