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