Implementation of rte_vhost_enqueue_burst() based on lockless ring-buffer
algorithm and contains almost all to be thread-safe, but it's not.

This set adds required changes.

First patch in set is a standalone patch that fixes many times discussed
issue with barriers on different architectures.

Second and third adds fixes to make rte_vhost_enqueue_burst thread safe.

version 3:
        * Rebased on top of current master.

version 2:
        * Documentation patch dropped. Other patches of series still
          may be merged to fix existing issues and keep code in
          consistent state for the future.
        * buf_vec field of struct vhost_virtqueue marked as deprecated.

 Ilya Maximets (3):
  vhost: use SMP barriers instead of compiler ones.
  vhost: make buf vector for scatter RX local.
  vhost: avoid reordering of used->idx and last_used_idx updating.

 doc/guides/rel_notes/deprecation.rst |  1 +
 lib/librte_vhost/rte_virtio_net.h    |  2 +-
 lib/librte_vhost/vhost_rxtx.c        | 71 ++++++++++++++++++++----------------
 3 files changed, 42 insertions(+), 32 deletions(-)

-- 
2.5.0

Reply via email to