On 2/19/2016 3:10 PM, Yuanhan Liu wrote: > On Fri, Feb 19, 2016 at 09:32:43AM +0300, Ilya Maximets wrote: >> Signed-off-by: Ilya Maximets <i.maximets at samsung.com> >> --- >> doc/guides/prog_guide/thread_safety_dpdk_functions.rst | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/doc/guides/prog_guide/thread_safety_dpdk_functions.rst >> b/doc/guides/prog_guide/thread_safety_dpdk_functions.rst >> index 403e5fc..13a6c89 100644 >> --- a/doc/guides/prog_guide/thread_safety_dpdk_functions.rst >> +++ b/doc/guides/prog_guide/thread_safety_dpdk_functions.rst >> @@ -67,6 +67,7 @@ then locking, or some other form of mutual exclusion, is >> necessary. >> The ring library is based on a lockless ring-buffer algorithm that >> maintains its original design for thread safety. >> Moreover, it provides high performance for either multi- or >> single-consumer/producer enqueue/dequeue operations. >> The mempool library is based on the DPDK lockless ring library and >> therefore is also multi-thread safe. >> +rte_vhost_enqueue_burst() is also thread safe because based on lockless >> ring-buffer algorithm like the ring library. > FYI, Huawei meant to make rte_vhost_enqueue_burst() not be thread-safe, > to aligh with the usage of rte_eth_tx_burst(). > > --yliu
I have a patch to remove the lockless enqueue. Unless there is strong reason, i prefer vhost PMD to behave like other PMDs, with no internal lockless algorithm. In future, for people who really need it, we could have dynamic/static switch to enable it.