Spdk/lib/vhost/rte_vhost
Darek Stojaczyk 3b6f69c8f5 vhost: remove unnecessary membarrier on I/O completion
We've recently switched from manually calling eventfd_write()
to rte_vhost_vring_call(), which besides writing to the
eventfd, always calls a full memory barrier in the upstream
rte_vhost lib. With upstream rte_vhost we're actually
calling two memory barriers on I/O completion - one in
spdk code, one inside rte_vhost_vring_call().

The spdk barrier was only required for our internal rte_vhost
lib, whose rte_vhost_vring_call() implementation (that we
wrote) did not have such membarrier inside. So now we'll
add this membarrier there, and remove the same barrier
from spdk code.

This doesn't change any code flow for the internal rte_vhost
lib, but optimizes I/O path for the upstream version.

Change-Id: I68738d7feb9159f718b0e60ac7eed1fafd4836b9
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466037
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2019-08-23 22:34:02 +00:00
..
fd_man.c vhost: upgrade SPDK vhost code to DPDK 17.05 2017-05-08 17:04:29 -07:00
fd_man.h vhost: upgrade SPDK vhost code to DPDK 17.05 2017-05-08 17:04:29 -07:00
Makefile rte_vhost: include rte_config.h via compiler option 2017-09-07 18:02:09 -04:00
rte_vhost.h vhost: abstract vring call mechanism as it is transport-specific 2019-06-03 20:14:08 +00:00
socket.c rte_vhost: fix deadlock on rte_vhost_driver_unregister() 2019-05-24 00:53:42 +00:00
vhost_user.c rte_vhost: fix deadlock on rte_vhost_driver_unregister() 2019-05-24 00:53:42 +00:00
vhost_user.h vhost/nvme: remove VHOST_USER_NVME_IO_CMD socket message 2018-11-27 13:24:42 +00:00
vhost.c vhost: remove unnecessary membarrier on I/O completion 2019-08-23 22:34:02 +00:00
vhost.h rte_vhost: fix compilation against dpdk master 2019-06-12 05:29:02 +00:00