On 3/18/2016 6:23 PM, Ilya Maximets wrote: > On 18.03.2016 13:08, Xie, Huawei wrote: >> On 2/24/2016 7:47 PM, Ilya Maximets wrote: >>> * Wait until it's our turn to add our buffer >>> @@ -979,7 +979,7 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, >>> uint16_t queue_id, >>> entry_success++; >>> } >>> >>> - rte_compiler_barrier(); >>> + rte_smp_rmb(); >> smp_rmb()? > There is no such function 'smp_rmb' in DPDK. > But: > .../arch/arm/rte_atomic.h:#define rte_smp_rmb() rte_rmb() > .../arch/ppc_64/rte_atomic.h:#define rte_smp_rmb() rte_compiler_barrier() > .../arch/tile/rte_atomic.h:#define rte_smp_rmb() rte_compiler_barrier() > .../arch/x86/rte_atomic.h:#define rte_smp_rmb() rte_compiler_barrier()
I mean shoudn't be rte_smp_wmb()? > >>> vq->used->idx += entry_success; >>> vhost_log_used_vring(dev, vq, offsetof(struct vring_used, idx), >>> sizeof(vq->used->idx)); >>> -- 2.5.0 >> >>